您的位置:首页 > 编程语言 > Java开发

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

2017-07-14 10:06 369 查看
新建一个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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐