[Java] HashMap 값 기준 정렬 및 키 기준 정렬

2022-12-03


Photo by Angèle Kamp on Unsplash


1. 방법

 

방법은 map 안에 있는 값이나 키를 추출해서 리스트 형식으로 변경 후에 정렬하는 방식을 사용하면 손쉽게 hashMap 형태의 자료구조를 정렬해서 확인할 수 있다.

 

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class Test3 {

	@Test
	void test1() {

		HashMap<Integer, Integer> map = new HashMap<>();
		map.put(1, 1);
		map.put(2, 2);
		map.put(3, 3);
		map.put(4, 1);
		map.put(5, 7);
		map.put(6, 4);

		/**
		 * 값기준으로 정렬하는 방법
		 * 
		 */
		List<Integer> valueList = new ArrayList<>(map.values());
		valueList.sort(Integer::compareTo);
		for (int i = 0 ; i < valueList.size(); i ++) { //오름차순 출력
			System.out.println(valueList.get(i));
			//	출력값 정보
			//	        	1
			//	        	1
			//	        	2
			//	        	3
			//	        	4
			//	        	7
		}

		System.out.println("=======================================");
		for (int i = valueList.size() - 1; i >= 0; i --) { //내림차순 출력
			System.out.println(valueList.get(i));
			//	출력값 정보
			//	        	7
			//	        	4
			//	        	3
			//	        	2
			//	        	1
			//	        	1
		}

		/**
		 * 키 기준으로 정렬하는 방법
		 * 
		 */
		System.out.println("=======================================");
		List<Integer> keyList = new ArrayList<>(map.keySet());
		keyList.sort((s1, s2) -> s1.compareTo(s2));
		for (int i = 0 ; i < keyList.size(); i ++) { //오름차순 출력
			System.out.println(keyList.get(i));
			//	출력값 정보
			//            1
			//            2
			//            3
			//            4
			//            5
			//            6
		}

		System.out.println("=======================================");
		for (int i = keyList.size() - 1; i >= 0; i --) { //내림차순 출력
			System.out.println(keyList.get(i));
			//	출력값 정보
			//            6
			//            5
			//            4
			//            3
			//            2
			//            1

		}	
	}
}

메인 이미지 출처 : Photo by Angèle Kamp on Unsplash