我需要檢查map是否包含列表中的任何鍵,如果它包含,則返回第一個匹配值。我想到的簡易方法是做兩個嵌套的循環:查找映射是否包含列表中的任何鍵的有效方法
Map<String, String> fields = new HashMap<String, String>();
fields.put("a", "value a");
fields.put("z", "value z");
String[] candidates = "a|b|c|d".split("|");
for (String key : fields.keySet()){
for (String candidate : candidates) {
if (key.equals(candidate)){
return fields.get(key);
}
}
}
是否有更好和更有效的方式,可能是一個依賴於Java標準庫?
這是有效的,因爲它可以得到的,但是如果'null'是'Map'中的允許值,它可能會變得棘手。 –
有趣...我的理解是否正確,只是使用'map。get()'一次而不是'map.contains()+ map.get()',因爲這會避免第二次查找?那很整齊! – ccpizza
@NimChimpsky retainAll是descructive。 –