List.contain(Object)方法与Object的equals方法

 1     @Test
 2     public void testListContain(){
 3         Person person1 = new Person("zhangsan",13);
 4         Person person2 = new Person("zhangsan",14);
 5         ArrayList<Person> list = new ArrayList<Person>();
 6         list.add(person1);
 7         list.add(person2);
 8         Person person3 = new Person("zhangsan",13);
 9         if(list.contains(person1)){
10             System.out.println("contain");
11         }else{
12             System.out.println("not contain");
13         }
14 
15     }
16 
17    result :contain

将第9行换成if(list.contains(person3))       result: not contain

 


 for (int i = 0; i < size; i++)
     if (o.equals(elementData[i]))
      return i;
o代表person1

contains方法内部循环列表 查看o是否equals 列表中的各个元素


  Object.java类
1
public boolean equals(Object obj) { 2 return (this == obj); 3 }
默认的equals方法比较的是两个对象的地址
Person类可以复写父类Object的这个方法,用来在比较时不比较地址,比如比较类中的元素的值等。

 
 

 

posted on 2017-12-07 19:19  飞舞z2q  阅读(1173)  评论(0编辑  收藏  举报