【发布时间】:2017-09-13 06:46:44
【问题描述】:
我正在尝试获取 TreeMap 中大于某个值 key 的所有键值的集合。
下面的代码尝试:
TreeSet<E> set = (TreeSet<E>)tMap.tailMap(key, false).values();
有没有办法在 Java 中做到这一点?
谢谢!!
【问题讨论】:
标签: java data-structures tree treemap treeset
我正在尝试获取 TreeMap 中大于某个值 key 的所有键值的集合。
下面的代码尝试:
TreeSet<E> set = (TreeSet<E>)tMap.tailMap(key, false).values();
有没有办法在 Java 中做到这一点?
谢谢!!
【问题讨论】:
标签: java data-structures tree treemap treeset
values() 返回一个Collection,因此您始终可以将该Collection 提供给TreeSet 构造函数(假设您的E 类实现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());
【讨论】: