我在一个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已关闭,但这意味着我必须为我的所有列表命名(并且可能有很多)。我想避免在可能的情况下将地图嵌套在地图中,除非需要。 有没有人对最佳解决方案有任何意见?
答案 0 :(得分:1)
如果您的问题是“如何检查特定列表是否为地图中的值”,那么您可以按以下方式执行此操作:
if (transactionMap.containsValue(Arrays.asList(1, 2, 3)) {
...
}
如果您的问题是“我如何检查列表中某个特定整数是否显示为地图中的值”,那么您可以执行以下操作(使用Java 8):
if (transactionMap.values().stream().anyMatch(l -> l.contains(17)) {
...
}