首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按降序排列元素的树集

按降序排列元素的树集
EN

Stack Overflow用户
提问于 2009-07-07 08:10:59
回答 5查看 64.3K关注 0票数 32

下面是我为Java5.0使用的代码

代码语言:javascript
运行
复制
TreeSet<Integer> treeSetObj = new TreeSet<Integer>( Collections.reverseOrder() ) ;

Collections.reverseOrder()用于获得一个比较器,以逆转存储和迭代元素的方式。

有没有一种更优化的方法来做这件事?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-07-07 08:14:01

为什么你认为这种方法不会被优化呢?相反的顺序Comparator将简单地翻转来自实际Comparator的输出符号(或插入的Comparable对象上的compareTo输出),因此我可以想象它非常快。

另一个建议是:与其更改存储元素的顺序,不如使用descendingIterator()方法按降序遍历元素。

票数 42
EN

Stack Overflow用户

发布于 2010-05-18 21:54:13

TreeSet::descendingSet

在Java6和更高版本中,TreeSet上有一个名为descendingSet()的方法,用于生成NavigableSet接口对象。

public NavigableSet descendingSet()

降序集由此集支持,因此对集合的更改反映在降序集中,反之亦然。如果在任一集合上的迭代正在进行中(除非通过迭代器自己的移除操作),则迭代的结果是未定义的。

返回的集合的排序等价于

比较器(Collections.reverseOrder)。表达式s.descendingSet().descendingSet()返回一个与s本质等价的视图。

接口中由: descendingSet指定的NavigableSet返回:自: 1.6以来的该集合的反向顺序视图

票数 10
EN

Stack Overflow用户

发布于 2009-07-07 08:16:58

代码语言:javascript
运行
复制
TreeSet<Integer> treeSetObj = new TreeSet<Integer>(new Comparator<Integer>()
  {
  public int compare(Integer i1,Integer i2)
        {
        return i2.compareTo(i1);
        }
  });

有必要翻转结果。但我想这是--.你真的需要这个吗?

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1090969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档