用于按降序对元素进行排序的树集TreeSet::descendingSet
2022-09-01 09:33:34
这是我用于Java 5.0的代码段
TreeSet<Integer> treeSetObj = new TreeSet<Integer>( Collections.reverseOrder() ) ;
Collections.reverseOrder() 用于获取比较器,以反转元素的存储和迭代方式。
有没有更优化的方法?
这是我用于Java 5.0的代码段
TreeSet<Integer> treeSetObj = new TreeSet<Integer>( Collections.reverseOrder() ) ;
Collections.reverseOrder() 用于获取比较器,以反转元素的存储和迭代方式。
有没有更优化的方法?
为什么您认为这种方法不会得到优化?相反的顺序只是将输出的符号从实际(或从插入的对象上输出)翻转,因此我认为它非常快。Comparator
Comparator
compareTo
Comparable
另一个建议是:与其更改元素的存储顺序,不如使用该方法按降序循环访问它们。descendingIterator()
TreeSet::descendingSet
在Java 6及更高版本中,TreeSet
上有一个名为downropingSet()
的方法,用于生成NavigableSet
接口对象。
public NavigableSet descendingSet()
降序集受此集的支持,因此对该集的更改将反映在降序集中,反之亦然。如果在对任一集进行迭代时修改了任一集(除非通过迭代器自己的 remove 操作),则迭代的结果未定义。
The returned set has an ordering equivalent to
Collections.reverseOrder(comparator()).表达式 s.descendingSet().descendingSet() 返回本质上等效于 s 的 s 视图。
Specified by: descendingSet in interface NavigableSet<E> Returns: a reverse order view of this set Since: 1.6