import java.util.*;
// 사용자가 만든 클래스를 정렬이 지원되는 자료구조에 적용을 하려면
// Comparable<?> 인터페이스를 반드시 구현해야 한다.
class Dog implements Comparable<Dog>{
int size;
public Dog(int s) {
size = s;
}
public String toString() {
return size + "";
}
// Comparable<?> 인터페이스 구현 : 리턴값은 int 형으로 (+1, 0, -1)를 한다.
@Override
public int compareTo(Dog o) {
return o.size - size; // 내림차순 // size - o.size; 오름차순
}
}
public class SetTest003 {
public static void main(String[] args) {
Set<Dog> dset = new HashSet<Dog>();
dset.add(new Dog(2));
dset.add(new Dog(1));
dset.add(new Dog(3));
Iterator<Dog> iterator = dset.iterator();
while (iterator.hasNext())
System.out.print(iterator.next() + " ");
System.out.println();
//-----------------------------------------------------------------
Set<Dog> dset2 = new LinkedHashSet<Dog>();
dset2.add(new Dog(2));
dset2.add(new Dog(1));
dset2.add(new Dog(3));
Iterator<Dog> iterator2 = dset2.iterator();
while (iterator2.hasNext())
System.out.print(iterator2.next() + " ");
System.out.println();
//-----------------------------------------------------------------
// 트리셑에 자신의 객체를 넣으려면 정렬 기준을 만들어 주어야 한다.
Set<Dog> dset3 = new TreeSet<Dog>();
dset3.add(new Dog(2));
dset3.add(new Dog(1));
dset3.add(new Dog(3));
Iterator<Dog> iterator3 = dset3.iterator();
while (iterator3.hasNext())
System.out.print(iterator3.next() + " ");
System.out.println();
}
}
댓글 없음:
댓글 쓰기