Java_基础—去除ArrayList中重复自定义对象元素

来源:互联网 发布:y芸芸网络有公司 编辑:程序博客网 时间:2024/06/05 10:38

新建一个Person类,属性为name, age

Alt + Shift +S → C 空参构造
Alt + Shift +S → O 有参构造
Alt + Shift +S → R 生成set和get 方法
Alt + Shift +S → S 生成toString方法

package com.soar.bean;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;    }    @Override    public String toString() {        return "Person [name=" + name + ", age=" + age + "]";    }    @Override    public boolean equals(Object obj) {        Person p = (Person)obj;        return this.name.equals(p.name) && this.age == p.age;    }}

新建一个ArrayList类

package com.soar.list;import java.util.ArrayList;import java.util.Iterator;import com.soar.bean.Person;@SuppressWarnings({ "rawtypes", "unchecked","unused" })public class Demo2_ArrayList {/* *  * A:案例演示    * 需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)    * B:注意事项    * 重写equals()方法    * contains()判断是否包含,底层依赖的是equals()方法    * remove()判断是否删除,底层依赖的也是equals()方法    * 如果不重写equals()方法,则会出错 */    public static void main(String[] args) {        ArrayList list = new ArrayList();       //创建集合对象        list.add(new Person("张三",23));        list.add(new Person("张三",23));        list.add(new Person("李四",24));        list.add(new Person("李四",24));        //ArrayList newlist = getSingle(list);        //System.out.println(newlist);      //[Person [name=张三, age=23], Person [name=李四, age=24]]        list.remove(new Person("张三",23));        System.out.println(list);    }    /*     * 创建新集合将重复元素去掉     * 1.明确返回值类型,返回ArrayList     * 2.明确参数列表ArrayList     * 分析:     * 1.创建新集合       * 2.根据传入的集合(老集合)获取迭代器       * 3.遍历老集合     * 4.通过新集合判断是否包含老集合的元素,如果包含就不添加,不包含就添加     */    public static ArrayList getSingle(ArrayList list){        ArrayList newList = new ArrayList();    //1.创建新集合        Iterator it = list.iterator();          //2.根据传入的集合(老集合)获取迭代器        while(it.hasNext()){                    //3.遍历老集合            Object obj = it.next();             //记录住每一个元素            if(!(newList.contains(obj))){       //如果新集合中不包含老集合中的元素                newList.add(obj);               //将该元素进行添加            }        }        return newList;    }}
阅读全文
0 0