프로그램 언어/Java

Java HashMap 값으로 정렬

husks 2023. 2. 14. 08:28
반응형

map에 들어있는 데이터를 기준으로 정렬하는 방법입니다.

 

Java에서는 사용자 정의 비교를 사용하여 HashMap의 값을 정렬한 다음 정렬된 값을 List 또는 LinkedList에 저장할 수 있습니다.

다음은 HashMap의 값을 오름차순으로 정렬하는 예입니다.

 

[예제]

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SortHashMap {

	public static void main(String[] args) {
		Map<String, Integer> map = new HashMap<>();
	    map.put("A", 3);
	    map.put("B", 1);
	    map.put("C", 2);
	    
	    List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
	    
	    Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
	      @Override
	      public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
	        return o1.getValue().compareTo(o2.getValue());
	      }
	    });
	    
	    for (Map.Entry<String, Integer> entry : list) {
	      System.out.println(entry.getKey() + ": " + entry.getValue());
	    }

	}

}

[결과]

B: 1
C: 2
A: 3

 

Java에서는 사용자 정의 비교를 사용하여 HashMap의 값을 정렬한 다음 정렬된 값을 List 또는 LinkedList에 저장할 수 있습니다.

다음은 HashMap의 값을 역순으로 정렬하는 예입니다.

 

[예제]

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ReverseSortHashMap {

	public static void main(String[] args) {
		Map<String, Integer> map = new HashMap<>();
	    map.put("A", 1);
	    map.put("B", 3);
	    map.put("C", 2);
	    
	    List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
	    
	    Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
	      @Override
	      public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
	        return o2.getValue().compareTo(o1.getValue());
	      }
	    });
	    
	    for (Map.Entry<String, Integer> entry : list) {
	      System.out.println(entry.getKey() + ": " + entry.getValue());
	    }

	}

}

[결과]

B: 3
C: 2
A: 1

 

반응형