java去除重復(fù)對象的簡單實例
實例如下:
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();//將其強(qiáng)制轉(zhuǎn)化為person類型 可以實現(xiàn)后邊的輸入否則不能調(diào)用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);
}
}
解題思路:創(chuàng)建一個臨時容器ArrayList來存儲不重復(fù)的對象。通過兩次使用迭代器將對象取出從而輸入不重復(fù)的對象。
這里需要注意到在Person類中需要定義一個equals方法來比較是否有相同的元素。其中instance的用法是判斷對象是否屬于該類如果屬于則返回true否則返回false.
注意Java編程中ArrayLis等容器中調(diào)用contains以及remove方法時候都會調(diào)用equals方法。這是一個很多人都不注意的知識點。
以上就是小編為大家?guī)淼膉ava去除重復(fù)對象的簡單實例全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
SpringBoot使用WebSocket實現(xiàn)前后端交互的操作方法
springboot使用websocket有兩種方式,一種是實現(xiàn)簡單的websocket,另外一種是實現(xiàn)STOMP協(xié)議,本篇講述如何使用springboot實現(xiàn)簡單的websocket,需要的朋友可以參考下2022-04-04
SpringBoot使用Spring-Data-Jpa實現(xiàn)CRUD操作
這篇文章主要為大家詳細(xì)介紹了SpringBoot使用Spring-Data-Jpa實現(xiàn)CRUD操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08
spring?boot使用攔截器修改請求URL域名?換?IP?訪問的方法
Spring Interceptor是一個非常類似于Servlet Filter 的概念 ,這篇文章主要介紹了spring?boot使用攔截器修改請求URL域名?換?IP?訪問的相關(guān)知識,需要的朋友可以參考下2022-09-09
Javaweb實現(xiàn)在線人數(shù)統(tǒng)計代碼實例
這篇文章主要介紹了Javaweb實現(xiàn)在線人數(shù)統(tǒng)計代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
IDEA 2020.1 搜索不到Chinese (Simplified) Language
小編在安裝中文插件時遇到IDEA 2020.1 搜索不到Chinese ​(Simplified)​ Language Pack EAP,無法安裝的問題,本文給大家分享我的解決方法,感興趣的朋友一起看看吧2020-04-04

