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

时间:2015-11-24 15:55:09

标签: java if-statement arraylist exists

我在一个ArrayList中嵌套了各种HashMap

如何检查嵌套在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不适合Set Sound = CreateObject("WMPlayer.OCX")

one已关闭,但这意味着我必须为我的所有列表命名(并且可能有很多)。我想避免在可能的情况下将地图嵌套在地图中,除非需要。 有没有人对最佳解决方案有任何意见?

1 个答案:

答案 0 :(得分:1)

如果您的问题是“如何检查特定列表是否为地图中的值”,那么您可以按以下方式执行此操作:

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

如果您的问题是“我如何检查列表中某个特定整数是否显示为地图中的值”,那么您可以执行以下操作(使用Java 8):

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