按第二维的值对2D浮点数组进行排序

时间:2013-05-31 08:48:29

标签: java

 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

请帮助

3 个答案:

答案 0 :(得分:4)

return Float.compare(o2[7],o1[7]);

答案 1 :(得分:0)

我认为你必须使用Float类而不是浮动原语

答案 2 :(得分:0)

您正在使用一个原语,您试图通过尝试在其上调用方法来取消引用。注意到原语不是类,因此没有方法。因此错误不能invoke

将方法签名更改为

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

可让您访问.compare功能

请记得通过Float[]。显然Java不是自动代码阵列