2
 Arrays.sort(copied, new Comparator<float[]>(){
    @Override
    public int compare(float[] o1, float[] o2) {
        // TODO Auto-generated method stub
        return o2[7].compareTo(o1[7]);
    }
});

复制的数组使用看起来像这样

[10.0, 34.34, 34.42, 34.1, 34.35, 5244700.0, 34.35, 0.0, 0.0, 0.0][10.0, 34.34, 34.42, 34.1, 34.35, 5244700.0, 34.35, 0.1, 0.0, 0.0 ].......

但不知何故,编译器错误返回行:

Cannot invoke compareTo(float) on the primitive type float

请帮忙

4

3 回答 3

4
return Float.compare(o2[7],o1[7]);
于 2013-05-31T08:54:06.963 回答
0

你正在使用一个原语,你试图通过调用它的方法来取消引用。请注意,原语不是类,因此没有方法。因此错误不能invoke

将您的方法签名更改为

public int compare(Float[] o1, Float[] o2) {
    // TODO Auto-generated method stub
    return o2[7].compareTo(o1[7]);
}

这将使您可以访问该.compare功能

记得通过Float[]。显然Java不会自动装箱数组

于 2013-05-31T09:07:38.243 回答
0

我相信你必须使用Float类而不是 float 原语

于 2013-05-31T08:53:05.857 回答