Java集合将自定义对象存到ArrayList集合中,并去除重复元素

qq_34872512 2016-12-09 12:53:08
package cn.bqd.Practice;
import java.util.ArrayList;
import java.util.Iterator;
/**
* 将自定义对象存到集合中,并去除重复元素
*
* 比如:存人对象。同姓名同年龄,视为同一个人。为重复元素。
*
* 思路:
*1,对人描述,将数据封装进人对象。
*2,定义容器,将人存入。
*3,取出。
*
* List集合判断元素是否相同,依据是元素的equals方法。
* @author Administrator
*
*/
class person{
private String name;
private int age;
person(String name,int age){
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;
}
//重写Object中equals方法
public boolean equals(Object obj){//这个equals()是person类中的equals()
if(!(obj instanceof person)){
return true;
}
person p=(person)obj;
return this.name.equals(p.name)&&this.age==p.age;//这个equals()是String类中的equals()方法,,因为name是字符串,所以可以调用equals()方法
}
}

public class ArrayListTest2 {
public static void main(String[] args) {
ArrayList al=new ArrayList();
al.add(new person("zhangsan1",12));//Object obj=new person();
al.add(new person("zhangsan2",12));
al.add(new person("zhangsan2",12));
al.add(new person("zhangsan3",15));
al.add(new person("zhangsan1",12));
al=show(al);
Iterator it=al.iterator();
while(it.hasNext()){
person p=(person)it.next();
System.out.println(p.getName()+"...."+p.getAge());
}
}
public static ArrayList show(ArrayList al){
//定义一个临时容器
ArrayList newa=new ArrayList();
//定义一个迭代器,进行遍历原ArrayList
Iterator it=al.iterator();
while(it.hasNext()){
Object obj=it.next();
if(!newa.contains(obj)){
newa.add(obj);
}
}
return newa;
}


}
...全文
557 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
computerclass 2016-12-09
  • 打赏
  • 举报
回复
试试用set 集合框架
萧乡月夜 2016-12-09
  • 打赏
  • 举报
回复
问题是什么

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧