ArrayList的contains方法,底层调用了equals方法。
2014-12-03 09:59
411 查看
题目:
将自定义对象作为元素存到ArrayList集合中,并去除重复元素
比如:存人对象,同姓名,同年龄,视为同一个人,为重复元素。
将自定义对象作为元素存到ArrayList集合中,并去除重复元素
比如:存人对象,同姓名,同年龄,视为同一个人,为重复元素。
/* 思路 1对人描述,将数据封装进人对象 2定义容器,将人存入 3取出 */ import java.util.*; class Person { private String name; private int age; Person(String name,int age) { this.name= name; this.age= age; } public boolean equals(Object obj) { if(!(obj instanceof Person)) return false; Person p= (Person)obj; return this.name.equals(p.name)&& this.age == p.age; } public String getName() { return name; } public int getAge() { return age; } } class Test { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add(new Person("lisi01",30)); al.add(new Person("lisi02",35)); al.add(new Person("lisi03",32)); al.add(new Person("lisi02",35)); al.add(new Person("lisi03",32)); al.add(new Person("lisi04",31)); al=singleElement(al); Iterator it = al.iterator(); while (it.hasNext()) { Person p = (Person)it.next(); sop(p.getName()+"---"+p.getAge()); } } public static ArrayList singleElement(ArrayList al) { //定义一个临时容器 ArrayList newAl = new ArrayList(); Iterator it =al.iterator(); while (it.hasNext()) { Object obj = it.next(); if (!newAl.contains(obj)) newAl.add(obj); } return newAl; } public static void sop(Object obj) { System.out.println(obj); } }
public boolean contains(Object o) { return indexOf(o) >= 0; } public int indexOf(Object o) { if (o == null) { for (int i = 0; i < size; i++) if (elementData[i]==null) return i; } else { for (int i = 0; i < size; i++) if (o.equals(elementData[i])) //调用参数的equals方法 return i; } return -1; }
相关文章推荐
- ArrayList的contains方法,底层调用了equals方法
- ArrayList 中 contains remove 判断元素相同 底层调用了 equals方法
- [黑马程序员]集合_ArrayList的contains方法用的是equals
- ArrayList的contains方法与Object的equals方法的关系
- ArrayList 的 contains()隐式调用了 对象的equals()
- java中ArrayList的contains(obj)和indexOf(obj)方法的调用顺序
- HashSet 中储存先判断对象的hash值 如果一样 在调用 对象equals方法判断是否是同一个对象
- ArrayList与linkedList的区别 重写hashCode()和equals()方法
- ArrayList的Contains方法
- ArrayList用equals方法判断对象是否在其中
- java 慎用ArrayList的contains方法,使用HashSet的contains方法代替
- java ArrayList的contains方法问题
- ArrayList中的contains方法学习笔记
- ArrayList中contains,remove方法返回为false的原因
- ArrayList的contains方法
- 17-4:ArrayList的contains/remove对对象操作关联equals的详解
- HashSet 中储存先判断对象的hash值 如果一样 在调用 对象equals方法判断是否是同一个对象
- Java 调用底层接口的几种方法
- 向ArrayList集合中存入对象,并以让集合用自己设定的方式去除重复元素!(覆写equals方法)
- ArrayList的contains方法(转)