sub_title
 JSP/Servlet
제   목 JAVA TreeSet 과 comparator 인터페이스를 이용한 정렬
작성자 높이뜬새 등록일 2008-06-16 20:01:26 조회수 15,068
[JAVA] 자바 TreeSet 과 comparator 인터페이스를 이용한 정렬

※ 경고
높이뜬새의 모르는 사람이 없는 팁시리즈 입니다.
이 팁시리즈는 지면낭비라는 항의시에 즉각 중단됩니다.

앞에 소개했던 "comparator 인터페이스를 이용한 객체정렬"에 사용했던 예제를 TreeSet을 이용한 객체 정렬 예제로 수정해 보았습니다. 자바 Collection Framework내의 클래스중, 이 TreeSet은 좀 더 편리한 기능이 있는데 바로 자동 정렬기능과 중복제거 기능입니다. TreeSet, TreeMap등 Tree로 시작하는 놈들이 자동으로 정렬되는 놈이고 TreeSet, HashSet등의 Set으로 끝나는 놈들의 기능이 중복제거입니다. 이놈은 Tree + Set 이므로 자동정렬과 중복제거의 기능 모두를 가지고 있는 기특한 놈입니다. 중복을 제거하고 정렬을 해야 할때 아주 유용하게 사용할 수 있는 놈이죠^^

아래소스는 처음에는 TreeSet을 걍 생성해서 자동으로 정렬(오름차순)되는 기능을 보여주고, 두번째 생성때는 comparator 인터페이스를 이용해서 내림차순 정렬되는 기능을 보여줍니다. 물론 자동으로 중복도 제거합니다.

/* ---------- comparator 인터페이스 구현을 이용한 TreeSet정렬 ---------------*/

import java.util.*;

public class TreeSetSort {
public static void main(String[] args) {

TreeSet <Integer> tree1 = new TreeSet <Integer> ();


for(int i = 0; i < 10; i++ ){
tree1.add((int)(Math.random()*100+1));
}

System.out.println("오름차순 정렬: ");

//TreeSet이나 TreeMap은 자동 정렬기능을 가지고 있습니다.
//HashSet, TreeSet등은 중복을 허용하지 않습니다.


for(Integer i : tree1){
System.out.print(i + " ");
}

TreeSet <Integer> tree2 = new TreeSet <Integer> (new Comp()); //새로운 정렬기준으로 TreeSet을 생성

for(int i = 0; i < 10; i++ ){
tree2.add((int)(Math.random()*100+1));
}

System.out.println("\r\n");

System.out.println("내림차순 정렬: ");
for(Integer i : tree2){
System.out.print(i + " ");
}

}

}

// Comparator 인터페이스를 구현
class Comp implements Comparator<Integer>{
public int compare(Integer o1, Integer o2){ //compara 메소드를 구현
return o1 > o2 ? -1 : (o1 == o2 ? 0 : 1);
}

// equals를 구현하지 않으면 Object의 equals를 사용합니다.
// equals를 구현했을때 퍼포먼스가 향상된다는 말도 있습니다.

}




From : 높이뜬새(www.webmadang.net)

 
0
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
85  JAVA comparator 인터페이스를 이용한 사용자 정의 객체 정렬   member 높이뜬새 0 / 0 15045 2008-06-18
84  JAVA Vector와 comparator 인터페이스를 이용한 정렬   member 높이뜬새 0 / 0 11969 2008-06-18
83  JSP upload(섬네일 포함) 서블릿 프로그램 첨부파일   member 티란투라 0 / 0 8859 2008-06-17
82  JAVA TreeSet 과 comparator 인터페이스를 이용한 정렬   member 높이뜬새 0 / 0 15068 2008-06-16
81  JAVA comparator 인터페이스를 이용한 객체정렬   member 높이뜬새 2 / 0 31500 2008-06-14
80  JAVA 오름차순 내림차순 정렬   member 높이뜬새 1 / 0 30756 2008-06-13
79  [JSP] int[] 배열을 integer[] 배열로 변환하기   member 높이뜬새 0 / 0 14393 2008-06-11
78  JAVA 거품정렬(Bubble Sort)   member 높이뜬새 0 / 0 10129 2008-06-09
77  JSP 한글,한자가 섞인 문자열 바이트 수대로 자르기   member 다자래 2 / 0 21890 2008-06-07
76  JSP UTF-8 개발에 관한 정리   member 티란투라 0 / 0 9530 2008-06-03
75  [JSP] 자바빈즈(Beans)에게 배열 넘기기   member 높이뜬새 0 / 0 15744 2008-05-31
74  JSP 체크박스 배열로 받기   member 티란투라 4 / 1 23434 2008-05-19
73  JSP request 로 넘어온 모든 변수값 보기   member 티란투라 0 / 0 13659 2008-05-17
72  JAVA에서 엑셀 읽기   member 티란투라 0 / 0 15066 2008-05-15
71  [JSP] 파일 업로드시 한글 파일이름이 깨질경우   member 높이뜬새 1 / 0 16681 2008-05-15
70  EJB 퍼포먼스 튜팅 자료 첨부파일   member 비가오니 0 / 0 8463 2008-05-14
69  Java로 PDF를 만들기 위한 PDF 라이브러리 링크   member 비가오니 0 / 0 9704 2008-05-14
68  JSP 파일다운로드 서블릿(Servlet)   member 티란투라 2 / 0 10378 2008-05-13
67  JSP 루트 디렉토리 구하기   member 우슬초 0 / 0 9446 2008-05-07
66  [ "==" 과 "equals()" 의 차이점]   member 우슬초 0 / 1 13165 2008-05-06
65  JSP 한글 영어 바이트수 알아내서 자르기   member 티란투라 0 / 0 9070 2008-05-06
64  jsp에서 charset한글 깨지는 타입 알아내기   member 티란투라 0 / 0 9474 2008-05-06
63  EJB를 사용하는 이유.   member 티란투라 0 / 0 8814 2008-05-03
62  10가지 JSP 팁   member 티란투라 0 / 0 19647 2008-05-03
61  Java 암호화 / 복호화   member 티란투라 0 / 0 10891 2008-05-02
write
button [1] [3] [4] [5] button