[英]Sort bidimensionnal double array java
我在对动态双向矩阵进行排序时遇到了一些麻烦。 我搜索并找到此解决方案:
Double[][] sortedOutput = new Double[length][4];
//...
// processing and filling my tab like that
sortedOutput[k][0] = content[i].getLeftSpeed);
sortedOutput[k][1] = content[i].getRightSpeed();
sortedOutput[k][2] = content[i].getNormAvgPowOutput();
// ...
// Now i'm trying to sort the tab
Arrays.sort(sortedOutput, new java.util.Comparator<double[]>()
{
public int compare(double[]a, double[]b)
{
return Double.compare(a[0], b[0]);
}
});
但是不知何故我不工作:
The method sort(T[], Comparator<? super T>) in the type Arrays is not applicable for the arguments (Double[][], new Comparator<double[]>(){})
为什么我不能将Arrays.sort
与double
一起使用?
我也尝试过一堂课:
package IOControl;
import java.util.Comparator;
public class CompareDoubleArray implements Comparator<double[]>
{
private int column;
public CompareDoubleArray(int column)
{
this.column = column;
}
public int compare(double[] arg0, double[] arg1)
{
return Double.valueOf(arg0[column]).compareTo(Double.valueOf(arg1[column]));
}
}
我应该如何使用我的课程? 我做错了什么? 任何帮助都很好,谢谢:)
您需要在Double[]
上键入Comparator
。 double[]
与Double[]
是不同的东西。 一个是基元数组,另一个是Double
对象数组,它们是基元的包装。
Arrays.sort(sortedOutput, new java.util.Comparator<Double[]>()
{
public int compare(Double[]a, Double[]b)
{
return Double.compare(a[0], b[0]);
}
});
Arrays.sort只接受single dimensional array
作为参数,所以这里不能使用multidimensional array
试试此代码可能对您有帮助。
for(Double[] d : sortedOutput){
Arrays.sort(d , new Comparator<Double>(){
@Override
public int compare(Double o1, Double o2) {
//implement logic here
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.