Notice
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- EL태그
- jsp
- html
- 필터체인
- 설정
- 면접
- Spring
- 알고리즘
- SESSION
- 이클립스
- 마이바티스
- springboot
- 셋업
- 자바스크립트
- 버튼
- 설치
- 자바
- 스프링
- Eclipse
- 제이쿼리
- jquery
- 깃허브
- 폼태그
- MySQL
- jstl
- jsp 내부객체
- 깃허브 간단요약
- Oracle
- 오라클
- java
Archives
- Today
- Total
은은하게 코드 뿌시기
컬렉션프레임웍(Collections Framework) - TreeMap 본문
728x90
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
package coding;
import java.util.*;
class code1_Treemap {
public static void main(String[] args) {
System.out.println("TreeMap test");
//이진검색형태의 키와 값이 쌍으로 이루어진 데이터형태
//범위검색이나 정렬에 좋다!
String[] arr = {"a","b","c","a","c","t","t","t","c","t","t"};
System.out.println("배열원본");
System.out.println(Arrays.toString(arr));
TreeMap map = new TreeMap();
for (int i=0; i < arr.length; i++) {
if (map.containsKey(arr[i])) {
Integer value = (Integer)map.get(arr[i]);
map.put(arr[i], new Integer(value+1));
} else {
map.put(arr[i], new Integer(1));
}
}
System.out.println(map);
System.out.println("기본정렬 : 값의 종류(키), 갯수(값)");
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
System.out.println("값의 크기 큰순으로 정렬");
Set set = map.entrySet();
//set을 list로 변환
List list = new ArrayList(set);
System.out.println(list);
//값 오름차순 정렬
Collections.sort(list, new ValueAsce());
System.out.println(list);
//값 내림차순 정렬
Collections.sort(list, new ValueDesc());
System.out.println(list);
}
static class ValueAsce implements Comparator{
@Override
public int compare(Object o1, Object o2) {
if (o1 instanceof Map.Entry && o2 instanceof Map.Entry) {
Map.Entry e1 = (Map.Entry)o1;
Map.Entry e2 = (Map.Entry)o2;
int v1 = ((Integer)e1.getValue()).intValue();
int v2 = ((Integer)e2.getValue()).intValue();
//오름차순은 같으면0 크면-1 작으면 1,
//내림차순은 같으면0 크면1 작으면 -1,
return v1-v2;
}
return -1;
}
}
static class ValueDesc implements Comparator{
@Override
public int compare(Object o1, Object o2) {
if (o1 instanceof Map.Entry && o2 instanceof Map.Entry) {
Map.Entry e1 = (Map.Entry)o1;
Map.Entry e2 = (Map.Entry)o2;
int v1 = ((Integer)e1.getValue()).intValue();
int v2 = ((Integer)e2.getValue()).intValue();
//오름차순은 같으면0 크면-1 작으면 1,
//내림차순은 같으면0 크면1 작으면 -1,
return v2-v1;
}
return -1;
}
}
}
|
cs |
728x90
'자바 > Collections Framework' 카테고리의 다른 글
컬렉션프레임웍(Collections Framework) - HashMap (0) | 2022.10.02 |
---|---|
컬렉션프레임웍(Collections Framework) - TreeSet (0) | 2022.10.02 |
컬렉션프레임웍(Collections Framework) - 큐(Queue) (0) | 2022.10.02 |
컬렉션프레임웍(Collections Framework) - 스택(stack) (0) | 2022.10.02 |
컬렉션프레임웍(Collections Framework) - ArrayList (0) | 2022.10.02 |
Comments