상세 컨텐츠

본문 제목

Java HashMap 값으로 정렬

프로그램 언어/Java

by 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

 

반응형

'프로그램 언어 > Java' 카테고리의 다른 글

Java ArrayList <class>의 날짜 값으로 정렬  (0) 2023.03.02
Java 숫자 쉼표 표시 (콤마 표시)  (0) 2023.02.14
Java 구분자가 포함된 단어 합치기  (0) 2023.02.08
Java XML 쓰기  (0) 2023.02.07
Java XML 읽기  (0) 2023.02.07

관련글 더보기

댓글 영역