大家好我有2个基于相同类的ArrayList。我必须从arraylist1添加到arraylist2不存在的行。我试图使用contains但它总是返回false。我做错了什么? TY
MyClass
public class HataKoduBean {
private String Oid;
private String Name;
private String Surname;
}
我如何定义Arraylists
Arraylist<MyClass> array1 = new Arraylist<>();
Arraylist<MyClass> array2 = new Arraylist<>();
我是如何比较的?
for (int ii = 0; ii < array1.size(); ii++) {
if (!array2.contains(array1.get(ii)))
array2.add(array1.get(ii));
}
答案 0 :(得分:2)
答案 1 :(得分:0)
首先,您必须在自定义对象中实现equals()和hashCode() 并使用这样的equals方法创建循环并在对象之间进行比较。
实现equals和hashCode:
file:/C:/Users/Jon/Test/foo/Test.class
比较对象:
`@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
HataKoduBean o = (HataKoduBean) o;
return Oid != null?Oid.equals(HataKoduBean.Oid):HataKoduBean.Oid== null;
}
@Override
public int hashCode() {
return Oid != null ? Oid.hashCode() : 0;
}`