【发布时间】:2016-09-16 18:21:58
【问题描述】:
假设键值对来自流,并且我们正在逐个读取它们并将它们添加到需要按值然后键排序的 TreeMap 中,我该如何实现呢?我不是在谈论任何可以使用它来轻松编写 Comparator 以从该映射中获取相应值并将其用于排序逻辑的中间映射。它是不允许的。直接,怎么可能。如果不使用其他数据结构,我认为这是不可能的。还是我在某个地方搞砸了?任何建议!
举个例子:
苹果,2
香蕉,20
橙色,5
它应该在树中:
苹果,2
橙色,5
香蕉,20
【问题讨论】:
-
TreeMap 的 javadoc 是明确的:
A Red-Black tree based NavigableMap implementation. The map is sorted according to the natural ordering of its keys, or by a Comparator provided at map creation time, depending on which constructor is used.所以它只按键排序,除非您提供比较器。话虽如此,您可以只使用带有自定义比较器的 TreeMap,除非这也是不允许的。
标签: java sorting collections treemap