티스토리 뷰
java TreeMap 클래스 사용법
안녕하세요. 이전 포스팅에서는 java linkedHashMap에 대해 알아봤습니다.
이번에 알아볼 클래스는 java TreeMap 입니다.
정렬 기능을 가지고 있어서 정렬이 필요할때 사용하시면 됩니다.
히자만 실무에서는 그다지 사용할 일이 없습니다.
여지껏 한번도 실무에서 사용해 본적이 없는 기능입니다.
예제 소스를 통해서 메소드 기능들을 하나씩 알아보도록 하겠습니다.
-------------------------------------------------------------------------------------------------------
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
public class Test {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] data = { "a", "k", "a", "k", "c", "a", "k", "a", "c", "k", "c", "o", "a" ,"z","o"};
int value;
TreeMap map = new TreeMap();
for (int i = 0; i < data.length; i++) {
if (map.containsKey(data[i])) {
value = (Integer) map.get(data[i]);
map.put(data[i], value + 1);
}
else
map.put(data[i], 1);
}
Iterator it = map.entrySet().iterator();
System.out.println("\n내림차순으로 정렬이 된다");
while (it.hasNext()) {
Map.Entry e = (Entry) it.next();
System.out.println(e.getKey() + " : " + e.getValue());
}
Set set = map.entrySet();
List list = new ArrayList(set); // ArrayList(Collection c)
Collections.sort(list, new ValueComparator("ASC"));
it = list.iterator();
System.out.println("-------------------------");
System.out.println("\n오름차순으로 정렬이 된다");
while (it.hasNext()) {
Map.Entry e = (Entry) it.next();
System.out.println(e.getKey() + " : " + e.getValue());
}
}
static class ValueComparator implements Comparator {
private String gubun;
public ValueComparator(String gubun) {
gubun = this.gubun;
}
@Override
public int compare(Object o1, Object o2) {
if (o1 instanceof Map.Entry && o2 instanceof Map.Entry) {
Map.Entry e1 = (Entry) o1;
Map.Entry e2 = (Entry) o2;
int value1 = (Integer) e1.getValue();
int value2 = (Integer) e2.getValue();
if("DESC".equals(gubun)) {
return value2 - value1; // DESC [K:6, A:3, D:2, Z:1]
}else {
return value1 - value2; //ASC
}
}
return -1;
}
}
}
------------------------------------------------------------------------------------------------
결과값입니다.
내림차순으로 정렬이 된다
a : 5
c : 3
k : 4
o : 2
z : 1
-------------------------
오름차순으로 정렬이 된다
z : 1
o : 2
c : 3
k : 4
a : 5
결과값을 보시면 원하는 소트순으로 정렬이 된걸 알수 있습니다.
내림차순으로 정렬 혹은 오름차순으로 정렬이 가능합니다.
Collections.sort 를 사용하기 위해서는
에 Comparable<T>를 오버라이딩 구현해주시면 됩니다.
사용예 ) Collections.sort(list, new ValueComparator("ASC"));
파라메터값으로 DESC를 주면 내림차순 그외 문자일경우는 오름차순으로 정렬이 되게 구현 하였습니다.
필요한 정렬 방식에 따라 파라메터를 주시면 될듯 싶습니다.
지금까지 예제소스를 통해서 Java TreeMap 사용법에 대해 알아봤습니다.
'JAVA(프로그래밍)' 카테고리의 다른 글
java String vs StringBuffer 비교 (0) | 2018.07.26 |
---|---|
java Properties 사용하기 (0) | 2018.07.25 |
java HashMap 대신 순서대로 사용하려면 LinkedHashMap를 사용하자. (0) | 2018.07.24 |
java HashMap 사용하는 방법 (0) | 2018.07.24 |
Java ArrayList 에 대해 알아보자 (0) | 2018.07.23 |
- Total
- Today
- Yesterday
- java문자열자르기
- 자바 패키지
- Java
- java Vector
- java iterator
- java join
- java Enumeration
- java LinkedHashMap
- java텍스트파일저장
- 자바
- java replaceAll
- java tihs
- 자바 랩퍼
- java배열
- java StringBuffer
- java Properties
- java 메모장
- java 노트패드
- java 소켓
- java wrapper class
- File Class
- java ArrayList
- java문자열저장
- java treemap
- java wrapper
- linkHashMap
- java substring
- java 네트워크
- java File
- 객체파일저장
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |