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