본문 바로가기

Java

TreeSet

반응형

TreeSet은 정렬을 위한 메소드를 구성해야 함.

TreeSet의 타입 class에 (만약 Member라면)

 

 

public class Member implements Comparable<Member>

{

@Override

public int compareTo(Member member)

{

return (this.id - member.id);

}

이렇게 하면 id에 대한 오름 차순.

String은 이름의 순서대로 이미 구현 되어 있음.

이름으로 구현 해 주고 싶으면

 

 

@Override

public int compareTo(Member member)

{

return this.name.compareTo(member.getName());

//이름은 String이므로 String에 대해 이미 구현된 compareTo사용

}

 

 

@Override

public int compareTo(Member member)

{

return this.name.compareTo(member.getName()) *(-1);

//이름 정렬 순서 반대로 만들어짐.

}

 

implements Comparator<Member> 해주면

 

 

@Override

public int compare(Member mem1 , Member mem2) 

{ return (mem1.id - mem2.id); }

 

 

TreeSet에서 중복인지 판단하는 기준은 Compare결과가 0일때 hashCode를 비교하고 같다면 equals를 비교해서

두 멤버가 같은지 비교하는 것 같다.

따라서 comparable 결과가 0을 return 하는 상황을 반드시 포함 할 것!

원래 두 객체가 같은지 비교하는 방법은 hashCode()비교 같다면 equals참조 따라서 같음.

 

반응형

'Java' 카테고리의 다른 글

내부 클래스  (0) 2019.11.03
HashSet , HashMap 순회  (0) 2019.11.03
Set 중복 처리  (0) 2019.11.03
객체를 참조하는 Set 인터페이스  (0) 2019.11.03
Set 인터페이스  (0) 2019.11.03