본문 바로가기

Java/본격 Java 컬렉션

[Java] TreeMap 개념 및 실습

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
반응형