У меня возникли проблемы с сортировкой моего динамического бинарного массива. я искал и нашел это решение:Сортировка двумерного массива двумерного массива 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]));
}
}
Как я должен использовать свой класс? Что я сделал не так? Любая помощь будет приятной, спасибо :)
Окей я попробовал это, но теперь я до сих пор с этой проблемой: 'java.lang.NullPointerException \t в IOControl.ReadCSV $ 1.compare (ReadCSV.java:326) \t в IOControl.ReadCSV $ 1.compare (ReadCSV.java:1) \t в java.util.TimSort.countRunAndMakeAscending (Unknown Source) \t в java.util.TimSort.sort (Unknown Source) \t в java.util.TimSort.sort (Неизвестно Источник) \t at java.util.Arrays.sort (Неизвестный источник) \t в IOControl.ReadCSV.run (ReadCSV.java:322) \t at en.window.Main.main (Main.java:46) ' – trolologuy
@trolologuy Убедитесь, что ваш массив' sortedOutput' правильно заполнен. А именно, проверьте, что 'sortedOutput [i] [0]' is ** не null ** для всех 'i'. Похоже, что один может быть пустым, а затем вы получите «NullPointerException» во время распаковки при вызове 'Double.compare' – cyon
Okey вы правы, некоторые из них« null »... но я не понимаю, почему, поэтому я попытался назначить значения «null» равны 0.0. Но я не могу, потому что 'Оператор == не определен для типа аргументов double, null'. Как я могу это исправить? – trolologuy