如何在java中比较两个不同的列表对象?

我有两个类列表,如List A1和List b1,两个列表都包含一个常见的字段。 那么通过使用这个字段,我必须比较这两个列表? 请有人帮帮我吗? 确保这些class级列表不同。

我不确定我完全理解这个问题,但是你要求这样的东西?

 public boolean compare (List listA, List listB) { if (listA.size() != listB.size () return false; for (int i=0; i 

两个列表都应该按该commonField字段排序

检查List.equals()的javadoc :

如果两个列表包含相同顺序的相同元素,则它们被定义为相等。

可以在这里使用equals方法,当然忽略您声明了两个列表的generics类型。 AbstractList的equals方法(ArrayList和一堆其他列表类实现)将遍历两个列表并按顺序调用每个元素上的equals,一旦完成,它确保在任一列表中都没有任何项目。

鉴于这一切,您将能够调用equals方法来确定天气两个列表包含相同的元素:

 List A1 = new ArrayList(); List b1 = new ArrayList(); // getElement returns a private field that can be cast to both Aclass and Bclass A1.add(getElement()); b1.add(getElement()); if (A1.equals(b1)) { System.out.println("two lists are equal"); }