TreeMap은 HashMap과 동일한 성질을 갖지만 또 하나 알아둘 것은 Map 사이에서도 약간의 순서를 정할 수 있다.
키(key)값에 의해서 정렬을 해볼 수 있다.
.
.
package map;
import java.util.*;
public class TreeMapEx1 {
public static void main(String[] args) {
TreeMap<Integer, String> tMap = new TreeMap<>();
tMap.put(87, "홍길동");
tMap.put(68, "이순신");
tMap.put(27, "강감찬");
tMap.put(84, "전우치");
tMap.put(37, "장보고");
Map.Entry<Integer, String> entry = tMap.firstEntry();
System.out.println("가장 낮은 점수는 " + entry.getKey() + ", " + entry.getValue());
entry = tMap.lastEntry();
System.out.println("가장 높은 점수는 " + entry.getKey() + ", " + entry.getValue());
}
}
.
.
.
.
entry를 통해서 첫번째값과 마지막값을 출력해봤다.
점수로 정렬이되어서 가장 낮은 점수와 가장 높은 점수를 출력할 수 있었다.
.
.
또다른 실습을 해보자.
영어 단어와 뜻을 저장한 후 출력해보는 프로그램을 작성해본다
.
.
package map;
import java.util.*;
public class TreeMapEx2 {
public static void main(String[] args) {
TreeMap<String, String> dictionaryMap = new TreeMap<>();
dictionaryMap.put("baby", "아기");
dictionaryMap.put("love", "사랑");
dictionaryMap.put("apple", "사과");
dictionaryMap.put("butterfly", "나비");
dictionaryMap.put("flower", "꽃");
dictionaryMap.put("music", "음악");
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("영어단어를 입력하세요 : ");
String engWord = sc.nextLine();
if(dictionaryMap.containsKey(engWord)) {
System.out.println(engWord + " : " + dictionaryMap.get(engWord));
}else if(engWord.equals("0")) {
break;
}
else {
System.out.println("입력하신 단어는 사전에 존재하지 않습니다.");
}
}
System.out.println("프로그램 종료");
}
}
.
.
.
.
사전형식으로도 사용할 수 있다.
내부적으로 문자순으로 정렬되어있다는 사실을 알고 있어야한다.
728x90
반응형
'Java > 본격 Java 컬렉션' 카테고리의 다른 글
[Java] Enumeration(열거형) (0) | 2020.07.15 |
---|---|
[Java] Map을 이용하여 로그인 시스템 구현하기 (0) | 2020.07.14 |
[Java] HashMap 개념 및 실습 (0) | 2020.07.14 |
[Java] Comparator 개념 및 실습 (0) | 2020.07.14 |
[Java] Comparable 개념 및 실습 (0) | 2020.07.14 |