Android ArrayList比较

时间:2016-04-26 12:56:10

标签: android arraylist

大家好我有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));  
                        }

2 个答案:

答案 0 :(得分:2)

首先,您必须在自定义类中实现equals()和hashCode()。

考虑使用Sets,因此您可以将一行中的集合与addAll()合并。

答案 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; }`