程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java去除反復對象的復雜實例

java去除反復對象的復雜實例

編輯:關於JAVA

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去除反復對象的復雜實例全部內容了,希望大家多多支持~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved