簡體   English   中英

HashMap在多個鍵中搜索特定值

[英]HashMap Searching For A Specific Value in Multiple Keys

我正在檢查HashMap中的鍵是否存在,如果存在,我還想檢查是否有其他鍵具有與我檢查過的原始鍵同名的值。

例如,我有這個。

System.out.println("What course do you want to search?");
    String searchcourse = input.nextLine();
boolean coursefound = false;

if(hashmap.containsKey(searchcourse) == true){
    coursefound = true;
        }

這將檢查鍵是否在我的哈希圖中存在,但是現在我需要檢查每個鍵的值是否為特定值,在這種情況下為字符串搜索過程。

通常,我會使用基本的for循環來遍歷此類內容,但不適用於HashMaps。 如果有幫助,我的值也存儲在String ArrayList中。

您將要查看HashMap中的每個條目。 此循環應檢查您的searchcourse過程的ArrayList的內容,並打印出包含該值的鍵。

for (Map.Entry<String,ArrayList> entries : hashmap.entrySet()) {
    if (entries.getValue().contains(searchcourse)) {
        System.out.println(entries.getKey() + " contains " + searchcourse);
    }
}

以下是相關的javadocs:

地圖條目

HashMap entrySet方法

ArrayList contains方法

您可以有一個雙向地圖。 例如,您可以具有Map<Value, Set<Key>>MultiMap作為鍵的值,或者可以使用計划添加到Guava的雙向地圖。

據我了解,您的地圖中的值為List<String> 也就是說,您的Map被聲明為Map<String, List<String>> 如果是這樣的話:

for (List<String> listOfStrings : myMap.values()) [
  if (listOfStrings .contains(searchcourse) {
    // do something
  }
}

如果值只是字符串,即Map是Map<String, String> ,則@Matt有簡單答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM