我有一个包含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类,仅用于调试。
答案 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());