Collective Intelligence

[JAVA 1.8] Map 에서 Value값을 Sorting하기 본문

개발/JAVA

[JAVA 1.8] Map 에서 Value값을 Sorting하기

유경파 2016. 3. 31. 18:35

Map<Object, Object> 가 있다고 했을 때, Key 값이 아닌 Value 값을 Sorting하는 방법이다.

Java  이전버전들은 소스가 길고 복잡한데 1.8은 짧게 끝낼 수 있다.

Eclipse로 개발 중인데 빌드, 컴파일 환경 Project Facet의 Java 버전을 1.8로 다 셋팅을 하고서야 에러가 나지 않았다.



 

 public static <K, V extends Comparable<? super V>> Map<K, V>  sortByValue( Map<K, V> map )
 {
  Map<K,V> result = new LinkedHashMap<>();
  Stream <Entry<K,V>> st = map.entrySet().stream();

  st.sorted(Comparator.comparing(e -> e.getValue()))
  .forEachOrdered(e ->result.put(e.getKey(),e.getValue()));

  return result;
 }