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

网友投稿 209 2023-06-18


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

实例如下:

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(){

retuhttp://rn 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()ZGBcJZyIA){

Person p=http://(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方法。这是一个很多人都不注意的知识点。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Builder Pattern建造者模式详解及实例
下一篇:bootstrap 表单验证使用方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~