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를 되돌려줍니다.
자바 프로그래밍에서 ArrayLis 등 용기에서contains와remove 방법을 호출할 때 equals 방법을 호출합니다.이것은 많은 사람들이 주의하지 않는 지식점이다.
지금까지 여러분에게 가져온 자바 중복 제거 대상의 간단한 실례 전부입니다. 많은 응원 부탁드립니다~

좋은 웹페이지 즐겨찾기