java去除重复对象的简单实例

作者:简简单单 2017-01-13

实例如下:

 

 代码如下复制代码

import java.util.*;

class Person {

private String name;

private int age;

Person(String name,int age){

this.name=name;

this.age=age;

}

public boolean equals(Object obj){

if(!(obj instanceof Person))

return false;

Person p=(Person)obj;

return this.name.equals(p.name) && this.age==p.age;

}

public String getName(){

return name;

}

public int getAge(){

return age;

}

}

public class ArrayListTest2{

public static void main(String args[])

{

ArrayList al=new ArrayList();

al.add(new Person("zhangsan1",22));

al.add(new Person("zhangsan2",33));

al.add(new Person("zhangsan3",44));

al.add(new Person("zhangsan5",88));

al.add(new Person("zhangsan4",55));

al.add(new Person("zhangsan1",22));

//al.add(new Person("zhangsan3",44));

 

al = singelElements(al);

Iterator it1=al.iterator();

while(it1.hasNext()){

Person p=(Person)it1.next();

sop(p.getName()+"..."+p.getAge());

}

 

/*Iterator it=al.iterator();

while(it.hasNext()){

 

Person p= (Person)it.next();//将其强制转化为person类型 可以实现后边的输入否则不能调用getAge()和getName()方法

sop(p.getName()+"..."+p.getAge());

}*/

}

public static ArrayList singelElements(ArrayList al){

ArrayList newal=new ArrayList();

 

Iterator it=al.iterator();

while(it.hasNext()){

Object obj=it.next();

if(!newal.contains(obj))

newal.add(obj);

}

return newal;

}

public static void sop(Object obj){

System.out.println(obj);

}

}

 

解题思路:创建一个临时容器ArrayList来存储不重复的对象。通过两次使用迭代器将对象取出从而输入不重复的对象。

这里需要注意到在Person类中需要定义一个equals方法来比较是否有相同的元素。其中instance的用法是判断对象是否属于该类如果属于则返回true否则返回false.

注意Java编程中ArrayLis等容器中调用contains以及remove方法时候都会调用equals方法。这是一个很多人都不注意的知识点。

相关文章

精彩推荐