java - 使用 containsAll() 比较两个 ArrayList

标签 java arraylist contains

有人可以帮我解决这个问题吗?

我有两个 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/

相关文章:

java - Mockito:我们可以使用 Mockito 模拟在测试类中使用 new 关键字调用的对象吗

java - Android 蓝牙上的数据格式

java - 奇怪的结果文件

java - 如何打印 ArrayList<Point>

css - 如何只选择文本的某个字符并将其变成中断?

java - 什么是 Java 中的三元组?

java - 违反检查通用对象列表的方法

java - 使用 SQLite 从 ListView 中删除项目

Java .contains 方法

java - 在多维 ArrayList 中查找字符串