我有各種ArrayList
嵌套在一個HashMap
中。Java - 檢查ArrayList是否存在嵌套在HashMap中的值
如何檢查我的數組列表是否存在於散列表中?
public static HashMap<Integer, ArrayList<Integer>> transactionMap = new HashMap<Integer, ArrayList<Integer>>();
public static void initializeLists() {
transactionMap.put(7, new ArrayList<Integer> (Arrays.asList(1050, 1125)));
transactionMap.put(305, new ArrayList<Integer>(Arrays.asList(1125)));
transactionMap.put(1125, new ArrayList<Integer>(Arrays.asList(250, 252, 251)));
transactionMap.put(1050, new ArrayList<Integer>(Arrays.asList(251, 252)));
transactionMap.put(1124, new ArrayList<Integer>(Arrays.asList(250)));
transactionMap.put(1049, new ArrayList<Integer>(Arrays.asList(251, 252)));
}
這篇文章here介紹如何直接在Array List
使用#contains(Object)
,它不適合HashMap
檢查。
這one是接近,但這意味着我將不得不給我的名單列出所有的名單(並可能有很多)。如果可能的話,我想避免在地圖中嵌套地圖,除非需要。 有沒有人有任何指向最佳解決方案?
你爲什麼不乾脆用一個''地圖<整數,INT []> ''而不是?順便說一句。你的例子不是有效的java代碼。 –
如果您可以使用Guava,可以使用Multimap,特別是[ArrayListMultimap](http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/ArrayListMultimap.html ),然後使用['multimap.containsValue'](http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/ArrayListMultimap.html#containsValue(java.lang。目的))。否則,您需要遍歷所有值,每個值都調用'contains',直到找到一個。 –
使用containsValue方法 – Tommy