• 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 }
  • 相关阅读:
    NotifyIcon控件
    JS中的tostring()方法
    WebApp之Meta标签总结
    List<T>用法
    JSON.parse()和JSON.stringify()
    背景图片移动插件MyFloatingBg(浮动背景图效果,可让背景随着页面的滚动而滚动)
    illegal mix of collcations表连接时非法的校对
    truncate 命令删除恢复
    php里 换行问题
    mysql命令行导出导入数据库
  • 原文地址:https://www.cnblogs.com/haizinihao/p/11643786.html
Copyright © 2020-2023  润新知