본문 바로가기
JAVA/Java Study

[Java] Map을 Key, Value로 정렬하기

by ♡˖GYURI˖♡ 2024. 8. 18.
728x90
프로그래머스 - 베스트앨범 문제를 풀이하며 Map을 정렬하는 방법이 있을지 궁금해졌다.

 

 

1. Key 값을 기준으로 정렬하기

  • map의 keySet()을 이용하여 정렬
  • 오름차순 : Collections.sort()
  • 내림차순 : Collections.reverse()
import java.util.*;

public class Main {
    public static void main(String[] args) {
    	Map<String, Integer> map = new HashMap<>();
        
        map.put("A", 10);
        map.put("D", 30);
        map.put("C", 20);
        map.put("B", 40);
        
        List<String> keySet = new ArrayList<>(map.keySet());	// map의 keySet()을 list로
        
        Collections.sort(keySet);	// 오름차순 정렬
        
        Collections.reverse(keySet); 	// 내림차순 정렬
    }
}

 

 

 

2. Value 값을 기준으로 정렬하기

  • comparator 사용
  • 람다 표현식 사용
import java.util.*;

public class Main {
    public static void main(String[] args) {
    	Map<String, Integer> map = new HashMap<>();
        
        map.put("A", 10);
        map.put("D", 30);
        map.put("C", 20);
        map.put("B", 40);
        
        List<String> keySet = new ArrayList<>(map.keySet());	// map의 keySet()을 list로
        
        // 오름차순 정렬
        keySet.sort(new Comparator<String>() {
        	@Override
            public int compare(String o1, String o2) {
            	return map.get(o1).compareTo(map.get(o2));
            }
        });
        
        // 내림차순 정렬
        keySet.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1)));
    }
}

 

 

 

 

 


 

 

[Java] Map을 Key, Value로 정렬하기

Java에서 HashMap 정렬이 필요할 때, 그 방법에 대해 알아볼 것이다.정렬 기준은 key, value 두가지로 나눌 수 있다.map 의 keySet을 이용하여 정렬한다.오름차순 시에는 Collection.sort(), 내림차순 시에는 Col

velog.io