我正在尝试比较两个ArrayList,但是似乎无法正常工作。
假设:
我的主要arrayList称为List 1通过以下方式获取其值:
ArrayList<xTypeClass> List1 = new ArrayList<xTypeClass>();
xTypeClass tmp = new xTypeCLass();
tmp.setName(name);
tmp.setaddress(address);
tmp.setPhone(phone);
tmp.setMonth(mo);
..etc
List1.add(tmp);
现在,我还有另一个list2,它保留了确切的类型格式,但是具有不同的值。我想将List2与1比较,看看List1中不存在哪些List2,并将其添加到List2中。我在使用double for循环来遍历两个列表来查找存在和不存在的问题。有人可以指出我正确的方向吗?如果您需要更多信息,请在下面评论。
最佳答案
假设您已经为xTypeClass实现了equals()和hashCode(),那么有什么理由不能仅仅这样做:
for (xTypeClass x : List1) {
if (!List2.contains(x)) {
List2.add(x);
}
}