2017-02-06 1 views
-1

키 값이 있습니다. 이제는 트리 값을 트리 집합에 추가하여 정렬 값을 원합니다. tree-set은 오름차순 정렬을 수행하기 때문입니다.treeset을 사용하여 hashmap에서 값을 정렬하는 방법은 무엇입니까?

변환 맵을 변환하여 목록으로 변환하는 방법이 있습니다. 그러나 그것은 바쁜 방법입니다, 이것에 대해 어느 누구도 의견을 말할 수 있습니까?

package practice; 
import java.io.ObjectInputStream.GetField; 
import java.util.*; 
import java.util.Map.Entry; 

public class example1{ 
    public static void main(String[] args) { 
     Map<Integer,String> map = new HashMap<Integer,String>(); 
     map.put(1, "h"); 
     map.put(2, "l"); 
     map.put(3, "a"); 
     System.out.println(map); 
     System.out.println("unsort"); 
     for(Map.Entry m:map.entrySet()) { 
      System.out.println(m.getKey()+" - "+m.getValue()); 
     } 
     System.out.println("sorting by values"); 
    } 
} 
+0

작동중인 문제를 볼 수 있도록 작업중인 코드를 제공해주십시오. – RedBassett

+0

질문 아래에있는 "편집"버튼을 사용하여 원래 질문에 추가 할 수 있습니다! – RedBassett

+0

여기에 몇 가지 옵션이 있습니다 : http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java – Andreas

답변

0

예는이 작업을 수행 할 수 있습니다 "정렬"이 방법을

HashMap<String, String> hashmap = new HashMap<>(); 
hashmap.put("k1", "Zz"); 
hashmap.put("k2", "A"); 
hashmap.put("k3", "Zd"); 
hashmap.put("k4", "Zd"); 

TreeSet<String> set = new TreeSet<>(hashmap.values()); 

을하지만,이 예에서,주의 해시 맵의 3 개 요소 (4 "K4 '항목을 포함하는 일련의 결과 줘야) 손실 얻을 것이다

나는이 정렬 모든 노력하겠습니다 자바가

List<String> collect = hashmap.values().stream().sorted().collect(Collectors.toList()); 

스트림 사용하는 것이 좋습니다 값.

+0

목록 collect = hashmap.values ​​(). stream(). sorted() .collect (Collectors.toList()); 이게 뭐야 ?? – Attri

+1

"스트림은 Java 8에서 도입 된 새로운 추상 레이어입니다. 스트림을 사용하면 SQL 문과 비슷한 선언적 방식으로 데이터를 처리 할 수 ​​있습니다."-> https://www.tutorialspoint.com/java8/java8_streams.htm을 참조하십시오. – kamehl23

관련 문제