[英]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:
您可以有一個雙向地圖。 例如,您可以具有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.