動的な 2 次元配列の並べ替えに問題があります。私はこの解決策を検索して見つけました:
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]));
}
}
クラスをどのように使用すればよいですか? 私は何を間違えましたか?どんな助けでもいいです、ありがとう:)