Сортировать массив 2D Java по значению с плавающей точкой - PullRequest
0 голосов
/ 22 апреля 2020

Я сделал небольшое java кодирование с некоторыми JSON значениями, которые я получаю из inte rnet. Я помещаю значения в строковый массив, печатаю его и ищу лучший (или самый высокий) результат и его «родительский» набор данных. Но, наконец, было бы неплохо отсортировать их по этой оценке автоматически.

Массив выглядит так:

myArray[0][0] = "John"
myArray[0][1] = "20"       //(<- int to String)
myArray[0][2] = "21.356"   //(<- float to String)
myArray[1][0] = "Sarah"    //data
myArray[1][1] = "32"       //data
myArray[1][2] = "27.045"   //score to be sorted on

Также я подумал о сортировке наборов данных, прежде чем помещать их в массив , но так как они приходят в виде простого текста (считывая значения json с веб-сайта), я должен установить связь значений перед сортировкой, и это тот момент, когда мне нужно выбрать и поместить их вручную в массив сначала.

Есть ли эффективный способ сортировки массива?

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Вы можете создать собственный компаратор, если вы хотите отсортировать строки, используя значение внутри них (здесь оценка), например:

Arrays.sort(myarray, new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
        }
    });

Кроме того, вы можете написать другой компаратор для сортировки 2d-массива по определенному столбцу. .

0 голосов
/ 22 апреля 2020

Если я вас правильно понимаю, вы можете создать поток из вашего массива, а затем использовать что-то вроде этого:

...
.sorted(Comparator.comparingDouble(Double::parseDouble))
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...