Collection_ TreeSet

Posted 2015. 4. 10. 11:58

중복 되지 않고

기본으로 오름차순으로 되어 있다.

내림 차순일 경우 구현 해야 하며

 

 

package chap11;
import java.util.*;

// Comparable을 implements 했을 경우.
// 오버라이딩 해서 기본 sort를 사용 하고,
// implements 하지 않았을 경우.
// comparable을 implement한 새로운 class를 만들어서 구현해서 쓴다.
class Phone implements Comparable{
 String name;
 int number;
 Phone(String name, int number){
  this.name = name;
  this.number = number;
 }
 
 // 이름순으로 정렬하도록 구현
 public int compareTo(Object o){
  Phone p = (Phone)o;
  return name.compareTo( p.name );
 }
 
 // 전화번호순으로 정렬
/* public int compareTo(Object o){
  Phone p = (Phone)o;
  return number - p.number;
 }*/
 
 @Override
 public String toString() {
  return name + ":" + number;
 }
}

public class ComparatorToEx2 {
 public static void main(String[] args) {
  TreeSet list = new TreeSet();
  // 내가 만들 클래스일 경우 정렬을 구현 해야 한다. compareTo 에러 발생.!!
  list.add( new Phone("김삿갓", 1235)); 
  list.add( new Phone("이몽룡", 3245));
  list.add( new Phone("홍길동", 1241));
  list.add( new Phone("임꺽정", 5142));
  System.out.println(list);
  
  // 오버라이딩이 겹치는 경우 새로운 클래스를 만들어서 쓴다.
  TreeSet list2 = new TreeSet(new NumberSort()); 
  list2.add( new Phone("김삿갓", 1235)); 
  list2.add( new Phone("이몽룡", 3245));
  list2.add( new Phone("홍길동", 1241));
  list2.add( new Phone("임꺽정", 5142));
  System.out.println(list2);
 }
}

class NumberSort implements Comparator{
 @Override
 public int compare( Object o1, Object o2 ){
  Phone p1 = (Phone)o1;
  Phone p2 = (Phone)o2;
  return p1.number - p2.number;
 }
}

 

'Java !!!' 카테고리의 다른 글

Collection _Iterator  (0) 2015.04.10
Collection_ HastSet  (0) 2015.04.10
Collection_ Set 오름차순 내림차순  (0) 2015.04.10
String_2  (0) 2015.04.07
String_1  (0) 2015.04.07