欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-08 11:11:52
实例如下: import java.util.*; class person { private string name; private int age;...

实例如下:

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方法。这是一个很多人都不注意的知识点。

以上就是小编为大家带来的java去除重复对象的简单实例全部内容了,希望大家多多支持~