本帖最后由 qw无语 于 2013-11-15 14:20 编辑
ArrayList al = new ArrayList();
al.add("java01");
al.add("java02");
al.add("java01");
当你使用add方法时候,就会使用你加入元素的equals方法
比如这个加入字符串,第一次添加"java01"他判断集合中没有元素,就不会使用equals
第二次,你添加"java02",他会使用字符串的equals方法比较集合所有元素,没有一样的就存入
第三次,你添加"java01",他会使用字符串的equals方法比较集合所有元素,有一样的都不存入
当你存入一个对象,那么你就要复写equals,写出你需要的比方法.
if(!(obj instanceof Person)) //楼上详细些 这个方法
//因为对象不一样就不需要比较下面了
return false;
Person p = (Person)obj;
System.out.println(this.name+"...equals.."+p.name);
return this.name.equals(p.name) && this.age == p.age;
每加入新一个元素都会和集合中所有元素比较一次,就只执行add的元素的equals方法
|