ArrayList去除集合中自定义对象元素的重复值_对象的成员变量值相同

ArrayList去除集合中自定义对象元素的重复值_对象的成员变量值相同

 1 package com.jh.bean;
 2 
 3 public class Person {
 4     private String name;
 5     private int age;
 6     public Person() {
 7         super();
 8         // TODO Auto-generated constructor stub
 9     }
10     public Person(String name, int age) {
11         super();
12         this.name = name;
13         this.age = age;
14     }
15     /**
16      * @return the name
17      */
18     public String getName() {
19         return name;
20     }
21     /**
22      * @param name the name to set
23      */
24     public void setName(String name) {
25         this.name = name;
26     }
27     /**
28      * @return the age
29      */
30     public int getAge() {
31         return age;
32     }
33     /**
34      * @param age the age to set
35      */
36     public void setAge(int age) {
37         this.age = age;
38     }
39     /* (non-Javadoc)
40      * @see java.lang.Object#toString()
41      */
42     @Override
43     public String toString() {
44         return "Person [name=" + name + ", age=" + age + "]";
45     }
46     /* (non-Javadoc)
47      * @see java.lang.Object#equals(java.lang.Object)
48      */
49     @Override
50     public boolean equals(Object obj) {
51         Person p = (Person) obj;
52         return this.name.equals(p.name) && this.age == p.age;
53     }
54     
55 }
 1 package com.jh.list;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Iterator;
 5 
 6 import com.jh.bean.Person;
 7 @SuppressWarnings({ "rawtypes", "unchecked" })
 8 
 9 public class jh_02_ArrayList去除集合中自定义对象元素的重复值_对象的成员变量值相同 {
10     /* * A:案例演示
11             * 需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)
12         * B:注意事项
13             * 重写equals()方法的
14         contains方法判断是否包含,底层依赖的是equals方法
15         remove方法判断是否删除,底层依赖的是equals方法
16      */
17      
18     public static void main(String[] args) {
19         ArrayList list = new ArrayList();
20         
21         list.add(new Person("张三",23));
22         list.add(new Person("李四",24));
23         list.add(new Person("李四",24));
24         list.add(new Person("李四",24));
25         list.add(new Person("张三",23));
26         list.add(new Person("王五",25));
27         list.add(new Person("王五",25));
28         list.add(new Person("王五",25));
29         list.add(new Person("张三",23));
30         list.add(new Person("张三",23));
31         list.add(new Person("张三",23));
32         list.add(new Person("张三",23));
33         
34         ArrayList newList = getSingle(list);
35         System.out.println(newList);
36     }
37     
38     
39     /**
40      * 创建新集合将重复元素去掉
41      * 1:返回值类型,ArrayList
42      * 2:参数列表, ArrayList
43      * 
44      * 分分析:
45      * 1:创建新集合
46      * 2:传入老集合,获取迭代器。
47      * 3:迭代老集合,
48      * 4:通过信集合判断是否包含 contains 老集合中的元素
49      * 如果包含就不添加; 如果不包含就添加。
50      * 
51      * 5:返回新集合对象
52      */
53     public static ArrayList getSingle(ArrayList list) {
54 //        1:创建新集合
55         ArrayList newList = new ArrayList();
56         Iterator it = list.iterator();// 传入老集合,获取迭代器。
57         
58         while(it.hasNext()) {
59             Object obj = it.next();
60             if(!newList.contains(obj)) {//contains方法判断是否包含,底层依赖的是equals方法
61                 newList.add(obj);//不包含就添加
62             }
63         }
64         return newList;// 5:返回新集合对象 
65     }
66 }

 

posted @ 2019-10-09 19:16  I_PENCIL  阅读(594)  评论(0编辑  收藏  举报