java – 使用Collections.sort(object)比较Long值

我试图将一个简单的对象列表排序很长时间 – 以下是不起作用的,因为其中一个长字符串被推到顶部只是因为它以较低的数字开头.所以我正在寻找一种方法来直接对实际的长值进行排序

当前的obj实现类似于下面的内容.在我正在使用它的类中,我调用Collections.sort(树);

public class Tree implements Comparable<Tree> {
    public String dist; //value is actually Long

    public int compareTo(Tree o) {
        return this.dist.compareTo(o.dist);
    }
}

解决方法:

为什么不在那里存储很长时间:

public class Tree implements Comparable<Tree> {
    public long dist; //value is actually Long

    public int compareTo(Tree o) {
        return this.dist<o.dist?-1:
               this.dist>o.dist?1:0;
    }
}

那或首先比较字符串的长度,然后比较它们

public String dist; //value is actually Long
public int compareTo(Tree o) {
    if(this.dist.length()!=o.dist.length())
          return this.dist.length()<o.dist.length()?-1:1;//assume the shorter string is a smaller value
    else return this.dist.compareTo(o.dist);
}
上一篇:java – “互相比较”是什么意思?


下一篇:Java | Integer