簡體   English   中英

Java-檢查嵌套在HashMap中的ArrayList中的值是否存在

[英]Java - Check if value in ArrayList nested in HashMap exists

我在一個HashMap嵌套了各種ArrayList

如何檢查嵌套在哈希圖中的數組列表是否存在?

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)));
}

此處的這篇文章介紹了如何使用#contains(Object)直接檢查Array List ,該列表不適用於HashMap

很接近的,但這意味着我必須在所有列表中都起一個名字(可能有很多)。 如果可能的話,我想避免在必要時將地圖嵌套在地圖中。 有誰對最佳解決方案有什么看法?

如果您的問題是“如何檢查特定列表是否在地圖中是一個值”,則可以按照以下步驟進行操作:

if (transactionMap.containsValue(Arrays.asList(1, 2, 3)) {
    ...
}

如果您的問題是“如何檢查特定整數是否在列表中的某個位置作為映射中的值”,則可以執行以下操作(使用Java 8):

if (transactionMap.values().stream().anyMatch(l -> l.contains(17)) {
    ...
}

暫無
暫無

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

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