首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeSet订单

TreeSet订单
EN

Stack Overflow用户
提问于 2014-04-29 12:56:23
回答 7查看 46.9K关注 0票数 10

通过这段代码,我得到了这样的输出:

代码语言:javascript
复制
 TreeSet<String> t=new TreeSet<String>();
  t.add("test 15");
  t.add("dfd 2");
  t.add("ersfd 20");
  t.add("asdt 10");


 Iterator<String> it=t.iterator();

 while(it.hasNext()){
   System.out.println(it.next);
 }

我得到:

代码语言:javascript
复制
  asdt 10 
  dfd 2 
  ersfd 20 
  test 15

我怎样才能得到这样的订单,根据数字,使用TreeSet?

代码语言:javascript
复制
  dfd 2 
  asdt 10 
  test 15
  ersfd 20 
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-04-29 13:06:47

TreeSet实现根据您插入的字符串值的字典顺序进行排序。如果您想按整数值进行排序,那么您需要按照其他人的建议进行排序,并创建一个新对象并覆盖compareTo方法,或者使用您自己的比较器。

代码语言:javascript
复制
Set<String> set = new TreeSet<String>(new Comparator<String>() {

    public int compare(String one, String other) {
        // implement
    }

});

代码语言:javascript
复制
public class MyClass implements Comparable {
    private String key;
    private int value;

    public int compareTo(MyClass other) {
        // implement
    }

    public boolean equals(MyClass other) {
        // implement
    }

    // snip ...
}

Set<MyClass> set = new TreeSet<MyClass>();
票数 17
EN

Stack Overflow用户

发布于 2014-04-29 13:05:57

您可以使用一个TreeSet构造函数:http://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html#TreeSet%28java.util.Comparator%29

这允许您指定自己的比较器,该比较器允许您任意组织集合中的条目。

实现一个Comparator,它从String中提取数字,然后先按数字排序,如果两个数字相等,则只返回String比较。

票数 2
EN

Stack Overflow用户

发布于 2014-04-29 13:05:52

使用接收自定义比较器的TreeSet构造函数,并实现不同排序字符串的比较器。

下面是一个示例(未经测试,在使用之前检查代码):

代码语言:javascript
复制
TreeSet<String> t = new TreeSet<String>(new Comparator<String>() {
    public int compare(String s1, String s2) {
        int spaceIndex1 = s1.indexOf(' ');
        int spaceIndex2 = s2.indexOf(' ');

        return Integer.parseInt(s1.substring(spaceIndex1 + 1)).compareTo(Integer.parseInt(s2.spaceIndex2 + 1));
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23365307

复制
相关文章

相似问题

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