list中筛选重复对象
custom.java
public class Custom {
private String id;
private String name;
public Custom(String id, String name) {
this.id = id;
this.name = name;
}
public Custom() {
}
@Override
public boolean equals(Object obj) {
Custom s=(Custom)obj;
return id.equals(s.id) && name.equals(s.name);
}
@Override
public int hashCode() {
String in = id + name;
return in.hashCode();
}
@Override
public String toString() {
return "Custom{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
'}';
}
}
重点是重新hashcode和equals方法
public class Test {
public static void main(String[] args) {
List list = new ArrayList();
list.add(new Custom("1000", "AAA"));
list.add(new Custom("1000", "AAB"));
list.add(new Custom("1000", "AAC"));
list.add(new Custom("1000", "AA"));
list.add(new Custom("1000", "AAA"));
list.add(new Custom("1000", "AA"));
list.add(new Custom("1000", "AAc"));
list.add(new Custom("1000", "AAc"));
//这个可以操作数据
Set hashSet = new HashSet();
List<Custom> templist = new ArrayList<Custom>();
for (Object string : list)
{
//如何templist中没有则添加
if (!templist.contains(string))
{
templist.add((Custom) string);
}
else
{
hashSet.add((Custom) string);
}
}
System.out.println("刷选后的数据-->"+templist);
System.out.println("------------------");
System.out.println("重复数据对象-->"+hashSet);
}
}
结果