treemap是按鍵的ASCII碼從小到大排序的,好比要對若干個帶有時間屬性的對象排序時,能夠用時間做鍵,放到Treemap中,便是有序集合了.先無論性能,省了不少本身寫排序的實現了.java
默認是按key的ASCII碼順序由小到大排序的,若是要實現自定義的排序,則要重寫treemap的比較器.ide
最簡單的方法就是使用集合對象自帶的方法,Collections.reverseOrder()性能
具體代碼以下對象
package com.example.commonwtf2.test; import java.util.Collections; import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.TreeMap; import org.junit.Test; public class ExerciseTreeMap { /** * @see: 反序輸出treemap * */ @Test public void outputTreeMap(){ Map<Long, Long> tMap = new TreeMap<>(); for(long i=0;i<40;i++){ tMap.put(i, i); } int i=0; Set<Long> longSet = new HashSet<>(); for (long key : tMap.keySet()) { if (i<20) { System.out.println(key +";"+tMap.get(key)); } i++; } System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```"); Map<Long, Long> tMapRever = new TreeMap<>(Collections.reverseOrder()); tMapRever.putAll(tMap); i=0; for (long key : tMapRever.keySet()) { if (i<20) { System.out.println(key +";"+tMapRever.get(key)); } i++; } } }
輸出結果排序
0;0 1;1 2;2 3;3 4;4 5;5 6;6 7;7 8;8 9;9 10;10 11;11 12;12 13;13 14;14 15;15 16;16 17;17 18;18 19;19 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``` 39;39 38;38 37;37 36;36 35;35 34;34 33;33 32;32 31;31 30;30 29;29 28;28 27;27 26;26 25;25 24;24 23;23 22;22 21;21 20;20
這樣就實現了treemap的反序輸出,逆序輸出,輸出倒數幾行等.ci