- package domain;
- public class Person{
- private String name;
- private int age;
-
- public Person() {
- super();
- }
-
- public Person(String name, int age) {
- super();
- this.name = name;
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- /**
- * 必须Personl类自己的判断依据,复写Object
- */
- public boolean equals(Object obj){
- if(this==obj)
- return true;
- if(!(obj instanceof Person)){
- throw new ClassCastException("类型错误");
- }
- Person p = (Person)obj;
- return this.name.equals(p.name)&&this.age==p.age;
-
- }
-
-
- }
复制代码
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import domain.Person;
- public class ArrayListDemo {
-
- public static void main(String[] args) {
- // 创建集合对象
- List list = new ArrayList();
- // 创建person对象
- Person p1 = new Person("lisi1",43);
- Person p2 = new Person("lisi2",42);
- // 把对象添加到集合
- list.add(p1);
- list.add(p2);
- list.add(new Person("lisi3", 23));
- list.add(new Person("lisi3", 23));
- list.add(new Person("lisi1", 43));
- list.add(new Person("lisi3", 23));
- list.add(new Person("lisi2", 42));
- list.add(new Person("lisi3", 23));
- /**
- * 取出对象
- */
- // for (Iterator it = list.iterator(); it.hasNext();) {
- //// 取出的是Object类,所以需要向下转型
- // Person p3 = (Person)it.next();
- // System.out.println(p3.getName()+"--"+p3.getAge());
- // }
- System.out.println(list);
- singleElement2(list);
- System.out.println(list);
-
- }
- /**
- * 去掉重复元素
- */
- public static void singleElement2(List list) {
- List temp = new ArrayList();
-
- for (Iterator it = list.iterator(); it.hasNext();) {
- Object obj = (Object)it.next();
- if(!temp.contains(obj))
- temp.add(obj);
- }
-
- list.clear();
- list.addAll(temp);
-
- }
- }
复制代码
为什么打印出来都是哈希码值,不是姓名+年龄? |