Java/Java icia 16일차

Java Map을 Key값 , Value값으로 정렬하기

swkn 2023. 3. 15. 17:08

정렬

Java 에서 HashMap 정렬을 할때 , 정렬 기준은 key , value값으로 정렬할 수 있다.


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

Map의 KeySet을 이용해서 정렬할 수 있다.

 

A . Collections 메소드

 

정렬할 때에는 ArrayList를 사용해 줄 필요가 있다.

List<String> keySet = new ArrayList<>(boardMap.keySet()); // ArrayList 준비

 

오름차 순 시에는 Collections.sort(); 메소드

내림차 순 시에는 Collections.sort(list , Collections.reverseOrder()); 메소드를 사용한다.

Collections.sort(keySet); // 오름차순
Collections.sort(keySet,Collections.reverseOrder()); // 내림차순

 

Map에서 key값을 따로 정렬해서 Map내에서 정렬하는 것이 아닌 , key값을 외부 ArrayList로 정렬한 묶음으로

출력할 때 정렬되도록 하는 것으로 이해했다.

 

 

 

B . List.sort() - Java 8이후

 

Java 8 이후부터는 List에서 sort() 메소드를 호출하여 정렬할 수 있다.

 

ArrayList<String> keySet = new ArrayList<>(boardMap.keySet()); // ArrayList 준비

 

오름차 순 시에는 list.sort(Comparator.naturalOrder()); 메소드를 사용한다.

내림차 순 시에는 list.sort(Comparator.reverseOrder()); 메소드를 사용한다.

keySet.sort(Comparator.naturalOrder()); // 오름차순
KeySet.sort(Comparator.reverseOrder()); // 내림차순

 


 

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