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참조 따라서 같음.