如何返回TreeMap中包含的值的TreeSet?

Cle*_*son 3 java tree treemap treeset data-structures

我试图得到一个TreeMap中键的所有值的集合,大于某个值,键.

代码尝试如下:

TreeSet<E> set = (TreeSet<E>)tMap.tailMap(key, false).values();
Run Code Online (Sandbox Code Playgroud)

有没有办法在Java中这样做?

谢谢!!

Era*_*ran 5

values()返回一个Collection,所以你总是可以将它提供CollectionTreeSet构造函数(假设你的E类实现Comparable<E>):

TreeSet<E> set = new TreeSet<E>(tMap.tailMap(key, false).values());
Run Code Online (Sandbox Code Playgroud)

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

TreeSet<E> set = new TreeSet<E> (yourComparator);
set.addAll(tMap.tailMap(key, false).values());
Run Code Online (Sandbox Code Playgroud)