如何根据树形图的值对其进行排序?
如何使用树形图的值而不是键对树形图进行排序?
How can I sort a treemap using its values rather than the key?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何使用树形图的值而不是键对树形图进行排序?
How can I sort a treemap using its values rather than the key?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
这是一个解决方案:
请注意,地图是从最高值到最低值排序的。
Here is a solution:
Note that the map is sorted from the highest value to the lowest.
您不能,因为 TreeMap 的比较器仅针对键运行,例如请参阅此 构造函数。
无论如何,您可以使用多个 Collections,使用 TreeMap(或更确切地说 HashMap)通过键查找元素,并使用 SortedSet 来迭代值。
You cannot as the TreeMap's comparator is run against the keys only, e.g. see this constructor.
Anyway, you can use multiple Collections, use the TreeMap (or rather HashMap) for looking up elements by keys, and have a SortedSet to iterate on the values.
Google Guava 提供了 TreeMultiMap< /a>.
您还可以使用两个集合。你想实现什么目标?您能解释一下您的用例吗?
Google Guava provides a TreeMultiMap.
You could also use two collections. What are you trying to accomplish? Can you explain your use cases?
Apache Commons Collections 有一个 TreeBidiMap:
这里有一个 Java5 泛型端口。
Apache Commons Collections has a TreeBidiMap:
There's a Java5-generics port of it here.
尝试下面的代码,它对我来说效果很好。您可以选择升序或降序进行排序。
Try below code it works fine for me. You can choose both ascending as well as descending order for sorting.
您可以尝试在创建 TreeMap 时提供一个比较器来比较值而不是键。
You could try giving a Comparator that compare values instead of keys when you create the TreeMap.
交换值和键。
更严肃地说,请提供一些您想要实现的目标的背景。也许其他处理完成后排序就足够了。
Swap values and keys.
More seriously, please provide some context what you want to achieve. Maybe it is enough to sort after other processing is finished.
试试这个。这会按升序对 TreeMap 值进行排序,假设您希望按升序对值进行排序。
Try this. This sorts TreeMap values in ascending order, assuming that is how you want the values to be sorted.
我就是这么干的..
That's I have done this..