有人可以帮我解决这个问题吗?
我有两个 ArrayList。
array1
包含:
[3 Avocados, 3 Tomatoes, 1 Teaspoon of Salt, 1/2 Cup Diced onion]
array2
包含:
[Avocados, Tomatoes]
我正在尝试使用 array1.containsAll(array2)
但它返回 false
因为 中的鳄梨和西红柿前面有“3”数组1
。
谢谢!
最佳答案
我建议使用 HashMap反而。 HashMap 包含一组键和值,而不是像数组列表那样包含一个值。在这种情况下,您应该将成分名称作为键,将数量作为值。然而,HashMap 没有 containsAll 方法,但您可以获取一组键(成分),然后调用 Set.containsAll .
HashMap<String, Integer> array1 = new HashMap<String, Integer>();
ArrayList<String> array2 = new ArrayList<String>();
array1.put("Avocados", 3);
array1.put("Tomatoes", 3);
//etc.
array1.keySet().containsAll(array2);
关于java - 使用 containsAll() 比较两个 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26246086/