사용의 트리 맵

종류에 TreeMap의 필요 때문에, 물론 위치하여 비교기 키를 누릅니다. 비교기의 크기를 비교하는 것이 필요하다.
   트리 맵을 만들 때 A. 비교기를 지정할 수 있습니다

   나. 만들 때 결정되지, 그것은 Comparable 인터페이스를 구현해야 키가 필요합니다 key.compareTo () 메소드를 기본값으로 설정됩니다.


첫째, 종류의 열쇠 :

 
 
수입 java.util.Comparator;
수입 java.util.Iterator를;
수입 java.util.Map;
금액 java.util.Set을하는 단계;
^ 수입 javautilTreeMap;
 
 
공공  클래스 TreeMapTest {
    공공  정적  무효 메인 (문자열 []에 args) {
        지도 <문자열, 문자열>지도 = 새로운 트리 맵 <문자열, 문자열> (
                새로운 비교기 <문자열> () {
                    공공  INT 비교 (문자열으로 obj1, 문자열 obj2보다) {
                        // 내림차순
                         obj2.compareTo (OBJ1);
                    }
                });
        map.put ( " B ", " CCCCC ");
        map.put ( " D ", " AAAAA ");
        map.put ( " C ", " BBBBB ");
        map.put ( " A는 " " 는 ddddd ");
        
        집합 <문자열> keySet 반환 map.keySet = ();
        반복자 <문자열> = keySet.iterator ITER ();
        반면 (iter.hasNext ()) {
            문자열 키 iter.next를 () =;
            에서 System.out.println (키 + " : "+ map.get (키));
        }
    }
}

역방향 출력 결과) :( 이하이다로서

 
 
D : AAAAA
C : BBBBB
B : CCCCC
A :는 ddddd
이 효과는 비교기하지 않습니다 (테스트)

두 .value 종류 (목록의 전설 <지도>)

        위의 예는 트리 맵이의 정렬 키 값을 기반으로하지만 때때로 우리는 TreeMap의 값을 기준으로 정렬 할 필요가있다. 으로는 다음과 같습니다 :

 
 
수입 인 java.util.ArrayList;
수입 Collections의;
수입 java.util.Comparator;
수입 은 java.util.List;
수입 java.util.Map;
수입 java.util.Map.Entry;
^ 수입 javautilTreeMap;
 
 
공공  클래스 TreeMapTest {
    공공  정적  무효 메인 (문자열 []에 args) {
        지도 <문자열, 문자열>지도 = 새로운 트리 맵 <문자열, 문자열> ();
        map.put ( " A는 " " 는 ddddd ");
        map.put("c", "bbbbb");
        map.put("d", "aaaaa");
        map.put("b", "ccccc");
        
        //这里将map.entrySet()转换成list
        List<Map.Entry<String,String>> list = new ArrayList<Map.Entry<String,String>>(map.entrySet());
        //然后通过比较器来实现排序
        Collections.sort(list,new Comparator<Map.Entry<String,String>>() {
            //升序排序
            public int compare(Entry<String, String> o1,
                    Entry<String, String> o2) {
                return o1.getValue().compareTo(o2.getValue());
            }
            
        });
        
        for(Map.Entry<String,String> mapping:list){ 
               System.out.println(mapping.getKey()+":"+mapping.getValue()); 
          } 
    }
}

        运行结果如下:

 
 
d:aaaaa
c:bbbbb
b:ccccc
a:ddddd




发布了159 篇原创文章 · 获赞 75 · 访问量 19万+

추천

출처blog.csdn.net/xuehuagongzi000/article/details/78198438