java去除反復對象的復雜實例。本站提示廣大學習愛好者:(java去除反復對象的復雜實例)文章只能為提供參考,不一定能成為您想要的結果。以下是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(){ 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去除反復對象的復雜實例全部內容了,希望大家多多支持~