Arrays.sort(),如何比较长值?

时间:2019-07-22 18:30:58

标签: android arrays sorting

我有一个包含100个对象的数组,每个对象都有一个长值。 我可以通过object.getlongValue()获得long值。 如何使用Comparable比较这两个值? 我做了什么:

public class objects implements Comparable<objects>{

private long longValue;

public object(long longValue){
this.longValue = longValue;
}

public long getLongValue(){
return longValue;
}

@Override
    public int compareTo(object obj) {
        return this.compareTo(obj.getLongValue); //now he can't find compareTo
    }

稍后,当我需要对数组进行排序时,请执行以下操作:

Arrays.sort(ListOfObj, new Comparator<objects>() {
                @Override
                public int compare(objects obj, objects obj1) {
                    return obj.getLongValue().compareTo(obj1.getLongValue());
                 // Here he dosen't know "compareTo" either
                }
            });

原因不是真正的Object类,仅用于调试。

1 个答案:

答案 0 :(得分:0)

long在Java中是原始的,没有compareTo方法。但是,您可以将其装箱到Long

    @Override
    public int compareTo(object obj) 
        return new Long(this.getLongValue()).compareTo(new Long(obj.getLongValue()));
    }

或仅使用signum函数:

 Long.signum(this.getLongValue() - obj.getLongValue());