Language/Java

[Java] 맵을 Key, Value 기준으로 정렬하기

aeeazip 2025. 3. 5. 15:26

목차


1. 맵을 Key를 기준으로 정렬

2. 맵을 Value를 기준으로 정렬

3. 리스트를 배열로 변환하는 방법

 

 

 

 

 

1. 맵을 Key를 기준으로 정렬


import java.util.*;

public class Main {

    public static void main(String[] args) {

        Map<String, Integer> map = new HashMap<>();
        map.put("classic", 500);
        map.put("Newage", 1000);
        map.put("pop", 300);
        map.put("rock", 400);
        map.put("rap", 200);

        // 1. 오름차순
        List<String> keyList = new ArrayList<>(map.keySet());
        Collections.sort(keyList);
        
        // 2. 내림차순 정렬
        Collections.sort(keyList, Collections.reverseOrder());
    }

 

map.keySet()으로 map의 key 리스트를 조회하고,  key 리스트를 Collections.sort로 정렬한다.

 

Collections.sort()는 오름차순 정렬

매개변수 인자로 Collections.reverseOrder()를 넣어주면 내림차순 정렬이 된다.

 

 

 

 

 

2. 맵을 Value를 기준으로 정렬


import java.util.*;

public class Main {
   
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("classic", 500);
        map.put("Newage", 1000);
        map.put("pop", 300);
        map.put("rock", 400);
        map.put("rap", 200);

        // 1. 오름차순
        List<String> keyList = new ArrayList<>(map.keySet());
        keyList.sort(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return map.get(o1).compareTo(map.get(o2));
            }
        });

        // 2. 내림차순
        keyList.sort(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return map.get(o2).compareTo(map.get(o1));
            }
        });
   }
}

 

익명함수와 Comparator를 사용해 정렬하는 방식이다.

 

 

 

 

 

3. 리스트를 배열로 변환하는 방법


List<Integer> → int[] 변환

import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
        
        // 스트림을 사용하여 List<Integer> → int[] 변환
        int[] array = list.stream().mapToInt(Integer::intValue).toArray();
        
        // 출력
        System.out.println(Arrays.toString(array));
    }
}

 

 

②  int[]  List<Integer>변환

import java.util.*;

public class Main {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5};
        
        // 스트림을 사용하여 int[] → List<Integer> 변환
        List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());
        
        // 출력
        System.out.println(list);
    }
}

 

 

List<String> String[] 변환

import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("apple", "banana", "cherry");
        
        // toArray()를 사용하여 List<String> → String[] 변환
        String[] array = list.toArray(new String[0]);
        
        // 출력
        System.out.println(Arrays.toString(array));
    }
}

 

 

String[]   List<String> 변환

import java.util.*;

public class Main {
    public static void main(String[] args) {
        String[] array = {"apple", "banana", "cherry"};
        
        // Arrays.asList()를 사용하여 String[] → List<String> 변환
        List<String> list = Arrays.asList(array);
        
        // 출력
        System.out.println(list);
    }
}