如何 return TreeMap 中包含的值的 TreeSet?

How do I return a TreeSet of the values contained in a TreeMap?

我正在尝试获取 TreeMap 中大于某个值 key 的所有键值的集合。

下面的代码尝试:

TreeSet<E> set = (TreeSet<E>)tMap.tailMap(key, false).values();

在 Java 中有没有办法做到这一点?

谢谢!!

values() returns 一个 Collection,所以你总是可以将 Collection 提供给 TreeSet 构造函数(假设你的 E class 实现 Comparable<E>):

TreeSet<E> set = new TreeSet<E>(tMap.tailMap(key, false).values());

如果您希望 TreeSet 使用一些自定义 Comparator 而不是自然排序,您可以这样写:

TreeSet<E> set = new TreeSet<E> (yourComparator);
set.addAll(tMap.tailMap(key, false).values());