Как отсортировать массив типа Object[][] по определенному столбцу

Я пишу код 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 (Я попробовал все решения из сообщения, помеченного здесь как «на этот вопрос уже был дан ответ», и ни одно из них не сработало для меня. Однако первый ответ здесь решил мою проблему. Спасибо!)

Arrays.sort(array, Comparator.comparingDouble(a -> (double) a[2]));
ernest_k 19.02.2019 05:34
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
139
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это:

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));

Другие вопросы по теме