zoukankan      html  css  js  c++  java
  • 去除ArrayList重复的对象

    将自定义对象作为元素存到ArrayList集合中,并去除重复元素;
     比如:存人对象,同姓名,同年龄,视为同一个人。为重复元素。

    class Person{
    private String name;
    private int 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;
    }

    Person(String name,int age){
    this.name=name;
    this.age=age;
    }
    public boolean equals(Object obj){    //因为所有类都继承或间接继承了Object类,在Person类中重写了Object类中的equals方法。告诉它该如何进行是否重复的判断。
    if(!(obj instanceof Person)){
    return false;
    }
    Person p=(Person)obj;
    return this.name.equals(p.name)&&this.age==p.age;
    }
    }

    public class Quchuchongfa {

    public static void main(String[] args) {

    ArrayList a=new ArrayList();
    a.add(new Person("mingzi01",10));
    a.add(new Person("mingzi02",11));
    a.add(new Person("mingzi02",11));
    a.add(new Person("mingzi03",12));
    a.add(new Person("mingzi03",12));
    a.add(new Person("mingzi04",13));

    a=fangfa(a);  //接收进行判断后的ArrayList。


    for(Iterator b=a.iterator();b.hasNext();){
    Person y=(Person) b.next();
    System.out.pringtln(y.getName()+y.getAge());
    }

    }
    public static ArrayList fangfa(ArrayList a){    //写判断是否重复的内部静态方法。
    ArrayList b=new ArrayList();
    for(Iterator t=a.iterator();t.hasNext();){
    Object c=t.next();
    if(!(b.contains(c))){b.add(c);}    //此处contains调用了被重写的equals方法。
    }
    return b;      //返回进行判断后的ArrayList。
    }

  • 相关阅读:
    jQuery遍历节点方法汇总
    python_30期自动化【艺龙酒店】
    python_30期【条件判断语句】
    python_30期【os模块 path处理路径】
    python_30期自动化【类的封装】
    python_30期【函数里面的位置参数/默认参数】
    python_30期【while循环】
    python_30期【http_requsts】
    python_30期【类方法之间的调用 return】
    python_30期【实例函数 类里面的函数】
  • 原文地址:https://www.cnblogs.com/shenhengjia/p/9026976.html
Copyright © 2011-2022 走看看