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去除重复对象的简单实例全部内容了,希望大家多多支持~