2013년 10월 17일 목요일

Set 인터페이스3

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();

}
}






댓글 없음:

댓글 쓰기