Я пишу код Java для своего проекта и столкнулся с этой проблемой, с которой не знаю, как справиться. У меня есть такой двумерный массив:
Object[][] array = new Object[10][3];
Который имеет внутренние типы: [String, String, Double]
Пример:
[[apple, car, 10.7], [melon, train, 3.4], [peach, plane, 5.2]]
Мне нужно отсортировать его по последнему двойнику в порядке возрастания, не создавая собственную функцию сортировки.
Желаемый результат:
[[melon, train, 3.4], [peach, plane, 5.2], [apple, car, 10.7]]
Кто-нибудь может мне помочь?
PS (Я попробовал все решения из сообщения, помеченного здесь как «на этот вопрос уже был дан ответ», и ни одно из них не сработало для меня. Однако первый ответ здесь решил мою проблему. Спасибо!)




Попробуй это:
Object[][] array = new Object[10][3];
// fill the array
Object[][] sortedArray = Arrays.stream(array)
.filter(v -> v[2] != null) //not required if you have the array completely filled
.sorted(Comparator.comparingDouble(v -> (double) v[2]))
.toArray(Object[][]::new);
System.out.println(Arrays.deepToString(sortedArray));
Arrays.sort(array, Comparator.comparingDouble(a -> (double) a[2]));