原文: https://beginnersbook.com/2014/07/how-to-iterate-treemap-in-reverse-order-in-java/

默认情况下,TreeMap元素按键的升序排序。我们可以以相反的顺序迭代TreeMap,以按键的降序显示元素。

以相反的顺序显示TreeMap元素:

  1. import java.util.*;
  2. class TreeMapDemo {
  3. public static void main(String args[]) {
  4. Map<String, String> treemap =
  5. new TreeMap<String, String>(Collections.reverseOrder());
  6. // Put elements to the map
  7. treemap.put("Key1", "Jack");
  8. treemap.put("Key2", "Rick");
  9. treemap.put("Key3", "Kate");
  10. treemap.put("Key4", "Tom");
  11. treemap.put("Key5", "Steve");
  12. Set set = treemap.entrySet();
  13. Iterator i = set.iterator();
  14. // Display elements
  15. while(i.hasNext()) {
  16. Map.Entry me = (Map.Entry)i.next();
  17. System.out.print(me.getKey() + ": ");
  18. System.out.println(me.getValue());
  19. }
  20. }
  21. }

输出:

  1. Key5: Steve
  2. Key4: Tom
  3. Key3: Kate
  4. Key2: Rick
  5. Key1: Jack

如您所见,元素以与键相反的顺序显示。

**更多关于Collections.reverseOrder() javadoc):

public static Comparator reverseOrder():返回一个比较器,它对实现Comparable接口的对象集合施加自然顺序的反转。 (自然排序是由对象自己的compareTo方法强加的排序。)这使得一个简单的习惯用法可以对反向自然顺序实现Comparable接口的对象的集合(或维护)进行排序(或维护)。例如,假设a是一个字符串数组。然后:Arrays.sort(a, Collections.reverseOrder());

以反向字典(按字母顺序)顺序对数组进行排序。返回的比较器是可序列化的。

返回:

一个比较器,它对实现Comparable接口的对象集合施加自然顺序的反转。

参考:

Collections.reverseOrder())