logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

[Java] SortedSet과 Comparable을 이용한 정렬(Sort)

by digipine posted Oct 29, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

자바에서는 정렬을 위핸 특별한 SortedSet 클래스를 제공합니다. 사용법도 간단하고 매우 편리합니다.
먼저 Comparable 을 상속 받은 자료 구조 클래스를 만든 다음 SortedSet으로 Add 하면 정렬되는 방식입니다.
자세한 사용법은 아래 소스를 참조하세요.
그리고 ... SortedSet은 List 와 달리 중복되는 데이터를 허용하지 않습니다. 반드시 중복되지 않는 자료 저장에 사용하십시오.


import java.util.Iterator;
import java.util.Random;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

public class Zealot implements Comparable {

             private int strength;
             private int shields;
            
             public Zealot(int strength,int shields) {
                           this.strength = strength;
                           this.shields = shields;        
             }
             public int getStrength() {
                           return strength;
             }
             public int getShields() {
                           return shields;
             }
             

             public int compareTo(Object o) { // 작은 수 부터 오름 차순으로 정렬 리턴 값 -1, 1을 바꾸면 내림 차순
                           Zealot z = (Zealot)o;
                          
                           if (z.getStrength() > strength)
                                        return -1;
                           else if (z.getStrength() == strength)
                                        return 0;
                           else
                                        return 1;
             }
            
             public static void main(String[] args) {

 
                           Random random = new Random();
 
                           SortedSet s = new TreeSet();

                           for(int i = 0; i < 10; i++)
                            s.add(new Zealot(random.nextInt(100),random.nextInt(100)));                    

                           for(Iterator it = s.iterator(); it.hasNext();) {
                                        Zealot z = (Zealot)it.next(); 
                                        System.out.print(z.getStrength() + " ");
                           }
                           System.out.println();
                          
                           while(!s.isEmpty()){  // Queue와 같은 방법으로 사용시에는 이렇게 해주면 됩니다.
                            Zealot z = (Zealot)s.first();
                            System.out.print(z.getStrength() + " ");
                            s.remove(z);
                           }
                           System.out.println();     
                          
             }
}

실행 결과
2 33 43 44 52 57 80 87
2 33 43 44 52 57 80 87 

TAG •

List of Articles
No. Subject Author Date Views
17 Android - 블루투스 BLE 개발하기 digipine 2017.11.02 3176
16 [안드로이드] 가속도 (Accelerometer)센서 Shake 이벤트 예제 digipine 2017.11.02 374
15 atomic vs volatile vs synchronized file 엉뚱도마뱀 2017.12.18 323
14 Android - 슬립모드 (Sleep Mode) 방지 코드 digipine 2017.10.29 315
13 Atomic Operation에 대해서 엉뚱도마뱀 2017.12.18 243
12 안드로이드 파일 입출력시 한글 깨짐 문제 digipine 2017.10.29 231
11 Ubuntu 기본 쉘 dash 대신 bash로 설정 digipine 2017.11.02 222
10 Android 하드웨어 코덱 포팅하기, OpenCore, OpenMAX digipine 2017.11.03 219
9 안드로이드 Activity간 인자 전달하기 digipine 2017.10.29 166
8 안드로이드 Native C 코드에서 Intent 보내는 방법 digipine 2017.11.02 118
7 Android - 이미지(비트맵) 리사이징 digipine 2017.11.01 113
6 Android - AlarmManager를 이용해서 서비스 실행 시키는 코드 digipine 2017.10.29 84
5 Android - Browser 에서 Activity 실행하기 file digipine 2017.10.29 79
4 안드로이드 애플리케이션 구성요소 digipine 2017.10.29 72
3 Android 기반 Application Ant 빌드 방법 digipine 2017.10.29 71
2 안드로이드 시스템 개발시 mmm 커멘드 사용법 digipine 2017.11.01 67
» [Java] SortedSet과 Comparable을 이용한 정렬(Sort) digipine 2017.10.29 61
Board Pagination Prev 1 Next
/ 1