본문 바로가기

Back-End/Java

[JAVA] HashMap Key 정렬(TreeMap)

<HashMap>

import java.util.*;
public class HashMapExample {
	public static void main(String[] args) {
		HashMap<string, string> ht = new HashMap<string, string>();
		ht.put("Grapes", "포도");
		ht.put("Apple", "사과");
		ht.put("Strawberry", "딸기");
		ht.put("Orange", "오렌지");

		Set<string> keyset = ht.keySet();
		Iterator<string> keyiterator = keyset.iterator();
		
		String k;
		String v;
		
		while(keyiterator.hasNext()) {
			k = (String)keyiterator.next();
			v = (String)ht.get(k);
			System.out.println("키 : "+k+" ---> 값 : "+v); 
		}
	}
}

출력 결과

키 : Apple ---> 값 : 사과

키 : Grapes ---> 값 : 포도

키 : Strawberry ---> 값 : 딸기

키 : Orange ---> 값 : 오렌지


HashMap은 내부 Hash값에 따라 키순서가 정해져 특정한 규칙 없이 결과값이 출력됩니다.

TreeMap은 keySet()으로 가져올 때 정렬된 상태로 가져옵니다.

Key순으로 정렬을 하려면 'TreeMap'을 이용해야 합니다.



<TreeMap>

import java.util.*;

public class HashMapExample {
	public static void main(String[] args) {
		HashMap<string, string> ht = new HashMap<string, string>();
		ht.put("Grapes", "포도");
		ht.put("Apple", "사과");
		ht.put("Strawberry", "딸기");
		ht.put("Orange", "오렌지");

		TreeMap<string,string> tm = new TreeMap<string,string>(ht);
		Set<string> keyset = ht.keySet();
		Iterator<string> keyiterator = tm.keySet( ).iterator( );   //키값 오름차순 정렬
//		Iterator<string> keyiterator = tm.descendingKeySet().iterator(); //키값 내림차순 정렬
		

		  
		String k;
		String v;
		
		while(keyiterator.hasNext()) {
			k = (String)keyiterator.next();
			v = (String)tm.get(k);
			System.out.println("키 : "+k+" ---> 값 : "+v); 
		}
	}
}

출력 결과(오름차순 정렬)

키 : Apple ---> 값 : 사과

키 : Grapes ---> 값 : 포도

키 : Orange ---> 값 : 오렌지

키 : Strawberry ---> 값 : 딸기


출력 결과(내림차순 정렬)

키 : Strawberry ---> 값 : 딸기

키 : Orange ---> 값 : 오렌지

키 : Grapes ---> 값 : 포도

키 : Apple ---> 값 : 사과