TreeMap默认正序排列,有时候我们会需要倒序,比如按日期或主键id。
public static void main(String[] args) {
// 正序
TreeMap<Long, Long> idMap = new TreeMap<>();
// 倒序
TreeMap<Long, Long> idMapDesc = new TreeMap<>(Comparator.reverseOrder());
ArrayList<Long> idList = new ArrayList<>();
idList.add(1291816766405608448L);
idList.add(1291816755206816768L);
idList.add(1291816742691013632L);
idList.add(1291816741894095872L);
idList.add(1291816741206228992L);
idList.add(1291816740451254273L);
idList.add(1291816740451254272L);
idList.add(1285459597691192320L);
idList.add(1276794887894729728L);
idList.add(1276782491218214912L);
for (Long id : idList) {
idMap.put(id, id);
idMapDesc.put(id, id);
}
for (Long id : idMap.keySet()) {
System.out.println("==== : " + id);
}
// 正序转倒序
NavigableMap<Long, Long> descendingMap = idMap.descendingMap();
for (Long id : descendingMap.keySet()) {
System.out.println("==== descendingMap : " + id);
}
for (Long id : idMapDesc.keySet()) {
System.out.println("====desc : " + id);
}
}