有人可以帮帮我吗?
我有两个ArrayLists。
array1
包含:
[3个鳄梨,3个西红柿,1茶匙盐,1/2杯洋葱丁]
array2
包含:
[鳄梨,西红柿]
我试图使用array1.containsAll(array2)
,但它正在返回false
,因为{{1}中的鳄梨和西红柿前面的#3;#3; }}
谢谢!
答案 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()方法
这取决于你想做什么