1. 이론적 준비
맵은 키 값 쌍의 컬렉션 인터페이스입니다. 구현 클래스에는 주로 Hashmap, Treemap, Hashtable 및 LinkedHashmap이 포함됩니다.
Treemap : 사용 된 생성자에 따라 키의 자연 순서로 정렬되거나 매핑이 생성 될 때 제공된 비교기를 기준으로 한 Red-Black 트리를 기반으로 한 NavigableMap 구현.
해시 맵의 값은 순서대로 진행됩니다. 그들은 키의 해시 코드에 따라 구현됩니다. 이 변하지 않은 해시 맵에 대한 정렬을 어떻게 구현합니까? Treemap의 값을 참조하십시오.
Map.entry 컬렉션보기를 반환합니다.
2. 키 분류
Treemap은 기본적으로 오름차순 순서입니다. 분류 방법을 변경 해야하는 경우 비교기 : 비교기를 사용해야합니다. 비교기는 수집 객체 또는 어레이를 정렬 하고이 인터페이스의 공개 비교 (t o1, to2) 메소드를 구현하여 다음과 같이 분류를 실현할 수 있습니다.
import java.util.comparator; import java.util.iterator; import java.util.map; import java.util.set; import java.util.treemap; public class treemaptest {public static void main (string [] args [] args [] args [] args [] args [] args []] args) {map <string, string> map = new treemap <string> (new public <string> () {public int int int () {public int () OBJ2) {// 내림차순으로 정렬 된 OBJ2.comPareto (OBJ1); map.put ( "b", "ccccccc"); map.put ( "d", "aaaaa"); map.put ( "c", "bbbbb"); map.put ( "a", "ddddd"); <string> keyset = map.keyset (); iterator <string> iter = keyset.iterator (); while (iter.hasnext ()) {String key = iter.next (); system.out.println (key + ":" + map.get (key)); }}}작업 결과는 다음과 같습니다.
D : AAAAAC : BBBBBB : CCCCCA : DDDDDD
3. 값 정렬
위의 예는 Treemap의 핵심 가치에 따라 정렬하는 것이지만 때로는 Treemap의 값에 따라 정렬해야합니다. 값을 정렬하려면 지정된 비교기에 의해 생성 된 순서에 따라 지정된 목록을 정렬하는 정렬 (list <t> list, comparator <? super t> c) 메소드를 사용해야합니다. 그러나 전제 조건이 있습니다. 즉, 모든 요소가 제공된 비교기를 기반으로 비교할 수 있어야합니다.
import java.util.arraylist; import java.util.collections; import java.util.comparator; import java.util.list; import java.util.map; import java.util.map.entry; import java.util.treemap; public steemaptest {string [] arg) {arg) Treemap <String, String> (); map.put ( "a", "dddddd"); map.put ( "c", "bbbbbb"); map.put ( "d", "aaaaa"); map.put ( "b", "ccccccc"); // 여기에서 map.Entryset ()로 목록으로 목록 <map.entry <string, String >> list = new ArrayList <map.Entry <String, String >> (map.EntrySet ()); // 그런 다음 비교기를 사용하여 정렬 Collections.sort (목록, 새 비교기 <map.entry <string, string >> () {// public int commach (enther <string, string <string, string> o2) {return o1.getValue (). 비교 (o2.getValue ()); for (map.Entry <string, String> 매핑 : list) {System.out.println (mapping.getKey ()+":"+mapping.getValue ()); }}}작업 결과는 다음과 같습니다.
D : AAAAAC : BBBBBB : CCCCCA : DDDDDD
키 및 값 구현 방법별 위의 Java 맵 정렬은 내가 공유하는 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.