java - 迭代按比较器排序的树形图

标签 java iterator comparator treemap

我创建了一个 TreeMap,它通过传递给构造函数的比较器按值排序。

如何按照比较器创建的顺序迭代 TreeMap? (不是按键/值的升序排列)

最佳答案

您不能使用TreeMap

解决方法是使用 LinkedHashMap 来保持插入顺序。
当您想要按 Comparator 对 map 进行排序时,请创建一个
带有 ComparatorTreeMap 实例,并将 LinkedHashMap 中包含的所有元素放入其中。

Map<MyObject> linkedHashMap = new LinkedHashMap<>();
....
TreeMap<MyObject> treeMap = new TreeMap<>(new MyComparator());
treeMap.putAll(linkedHashMap);

关于java - 迭代按比较器排序的树形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45682077/

相关文章:

java - 避免使用 BigDecimal 的科学记数法

c++ - 迭代器在 C++ 中的工作原理

java - Hibernate 中的 Order.asc(<String>) 和 Comparable 接口(interface)中的 "compareTo"行为是否相同?

java - 如何对对象类型列表进行排序

Java:SWT TableViewer 中的排序器和比较器有什么区别

java - 为什么动态规划解法只适用于方板?

java - 静态实例变量的存储

java - SpringMVC 如何在调用构造函数时从 session 范围获取 bean

c++ - 列表迭代器不可取消引用

java - 使用迭代器比较数组列表中对象存储的字段