无论元素的顺序及其出现次数如何,我如何检查arraylist的对象是否与另一个对象匹配。让我们说我有:
obj1 contains "boy", "girl", "kid"
obj2 contains "girl", "kid", "boy", "girl"
obj3 contains "woman", "boy", "girl", "kid"
所有的arraylist
我希望程序实现这一目标:
obj1 = obj2 true
obj1 = obj3 false
obj2 = obj3 false
答案 0 :(得分:3)
我认为你的意思是以下内容。您想要检查列表中包含的唯一元素是否相同。订单无关紧要。
要解决此问题,您需要设置仅包含唯一元素且不保留顺序:
List<String> first = ....
List<String> second = ....
boolean result = new HashSet<>(first).equals(new HashSet<>(second));
答案 1 :(得分:1)
您应该使用containsAll()
方法:
List a = Arrays.asList("boy", "girl", "kid");
List b = Arrays.asList("girl", "kid", "boy", "girl");
List c = Arrays.asList("woman", "boy", "girl", "kid");
System.out.println(a.containsAll(b)); // true
System.out.println(a.containsAll(c)); // false
System.out.println(b.containsAll(c)); // false
答案 2 :(得分:0)
为了让您入门,请阅读List .contains方法。在带有布尔标志的嵌套循环中使用它,以指示一个列表项是否满足其他列表中任何项的.equals。
您还需要确定比较是否应该是双向的。您可能有一个场景,obj2中存在obj1的所有项目,但obj1中不存在obj2的所有项目。换句话说,obj2是obj1的超集。