使用containsAll()比较两个ArrayList

时间:2014-10-07 22:07:18

标签: java arraylist contains

有人可以帮帮我吗?

我有两个ArrayLists。

array1包含:

  

[3个鳄梨,3个西红柿,1茶匙盐,1/2杯洋葱丁]

array2包含:

  

[鳄梨,西红柿]

我试图使用array1.containsAll(array2),但它正在返回false,因为{{1}中的鳄梨和西红柿前面的#3;#3; }}

谢谢!

2 个答案:

答案 0 :(得分:1)

我建议改用HashMap。 HashMaps包含一组键和值,而不是像数组列表一样的值。在这种情况下,您应该将成分的名称作为键,将金额作为值。但是,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);

答案 1 :(得分:0)

containsAll()使用equals()方法检查对象是否相等。

如果你想比较那样的字符串你应该使用String#contains方法和一些循环

或者您可以使用description和quantity属性创建自己的类,并覆盖equals()方法

这取决于你想做什么