2015-10-03 70 views
1

我想檢查一個值是否存在。檢查List是否是HashMap中的值

我的代碼:

public static final Map<String, List<String>> m = new HashMap<>(); 

if(m.containsValue("gummi")) {...} 

我的問題是該值是一個列表。 如何檢查清單?

回答

1

List.equals Javadoc中引用:

換句話說,兩個列表被定義爲等於如果它們包含以相同的順序相同的元件。

因此,要檢查是否有存在的價值,你可以創建一個列表,並調用containsValueList,因爲這種方法會調用equals確定的平等。如果相同元素的順序相同,則會找到匹配項。

您可以輕鬆創建值數組的ListArrays.asList

if(m.containsValue(Arrays.asList("gummi"))) {...} 

示例代碼:

Map<String, List<String>> m = new HashMap<>(); 
List<String> list = new ArrayList<>(); 

list.add("1"); 
list.add("2"); 
m.put("key", list); 

if (m.containsValue(Arrays.asList("1", "2"))) { 
    System.out.println("contains value"); 
} 
+0

這要求主叫者知道這是一個值列表中的所有成員。 –