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 |