맵은 키 값 쌍의 컬렉션 인터페이스입니다. 구현 클래스에는 주로 Hashmap, Treemap, Hashtable 및 LinkedHashmap이 포함됩니다.
• Treemap : 사용 된 생성자에 따라 키의 자연 순서 또는 맵을 작성할 때 제공된 비교기로 정렬되는 Red-Black 트리를 기반으로 한 NavigableMap 구현.
• 해시 맵 값은 순서대로 진행되며 키의 해시 코드에 따라 구현됩니다. 이 변하지 않은 해시 맵에 대한 정렬을 어떻게 구현합니까? Treemap의 값을 참조하십시오.
Map.entry 컬렉션보기를 반환합니다.
키별로 정렬하십시오
Treemap은 기본적으로 오름차순 순서입니다. 분류 방법을 변경 해야하는 경우 비교기 : 비교기를 사용해야합니다. 비교기는 수집 객체 또는 어레이의 비교기 인터페이스를 정렬 하고이 인터페이스의 공개 비교 (t o1, to2) 메소드를 구현하여 정렬을 실현할 수 있습니다.
참고 : 다음 코드는 JDK1.6에서 테스트되었습니다.
Treemap은 기본적으로 오름차순 순서로 정렬됩니다
public static void keyupsort () {// 기본적으로, treemap은 keymap <string, integer> map = new treemap <string, integer> (); map.put ( "acb1", 5); map.put ( "bac1", 3); "bca1"; map.put ( "Cab1", ",", "," 1); map.put ( "abc1", 10); map.put ( "abc2", 12); // 기본적으로 Treemap은 키를 오름차순 순서대로 정렬합니다. System.out.println("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------트리 맵의 분류 방법을 수정하고 내림차순으로 정렬하십시오.
public static void keydownsort () {// treemap, 순서로 내려 오십시오. 순서 // 내림차순 비교기 <string> keycomparator = new Comparator <string> () {@overridepublic int compar (문자열 o1, 문자열 o2) {// to auto-auto-generated method stubreturn o2.compareto (o1);};};};}; Treemap <String, Integer> (keyComparator); map.put ( "acb1", 5); map.put ( "bac1", 3); map.put ( "bca1", 20); map.put ( "cab1", 80); map.put ( "cba1", 1); map.put ( "abc1", 10); map.put ( "Abc2", 12); System.out.println ( "------------ TREEMAP 按 키 降序排序 --------------------"); for (map.Entry <String, Integer> entry : map.Entryset ()) {system.out.println (entherkey () + " +": " + eptor.getValue ());}}}}}}}가치별로 정렬하십시오
다음은 오름차순 순서로 Treemap의 정렬을 보여 주며 해시 맵에도 동일하게 적용됩니다.
Treemap의 분류 방법을 수정하고 오름차순 순서로 정렬하십시오.
참고 : 정상적인 상황에서는 collections.sort () 메소드를 사용하여 맵을 정렬 할 수 없지만 정렬하기 전에 맵을 목록으로 변환 할 수 있습니다.
public static void valueUpsort () {// 기본적으로, treemap은 키 맵 <문자열, 정수> map = new treemap <string, integer> (); map.put ( "acb1", 5); map.put ( "bac1", 3), 3); map.put ( "bca1", 20); 1); map.put ( "abc1", 10); map.put ( "abc2", 12); // 오름진 비교기 비교기 <map.entry <string, integer >> valuecomparator = new Comporator <map.entry <문자열, 정수 >> () {@overridepublic int compare (enther <string, integer> O1, enter <string, inter> o2). 자동으로 만들어진 메소드 stubreturn o1.getValue ()-o2.getValue ();}}; // 정렬 목록을 목록으로 변환 <map.entry <string, integer >> list = new arraylist <map.entry <string, integer >> (map.entryset ()); // valuecomparator); 오름차순으로 System.out.println("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 테스트 결과
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
위는 편집기가 소개 한 값에 따른 Java 맵 정렬의 구현 방법입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!