lists = new ArrayList();
if(!lists.contains(t1)){
lists.add(0, t1);
}
if(!lists.contains(t2)){//重写equals
lists.add(0, t2);
}
System.out.println("长度:"+lists.size());
}
}
通过执行main函数,可以看到HashSet中只有一条记录。说明t1和t2是重复数据。
系统是如何判断的呢:
用HashSet时:
首先当添加add时,会判断javabean的hashCode是否一样,如果一样再去判断equals方法是否一样,
如果都一样,则系统认为这两个javabean是重复的。不添加到HashSet中。
用List时,
list中有contain方法。当用contain方法时,会去掉用javabean的equals方法。如果该javabean的equals方法和list中其余的javabean一样,
则系统认为是重复数据,list的contain方法会返回true,表示已存在。
说明:如果想要判断javabean是否相同。需要重写hashCode和equals方法。
示例如上。注意两点:
第一点:重写javabean的hashCode和equals方法。具体如何重写见上面示例。
第二点:用list的contain方法或者用HashSet的add方法。都可以达到过滤重复的javabean。