Как использовать функцию сортировки Java таким образом, что она будет сортировать 2 до 11? - PullRequest
1 голос
/ 06 ноября 2011

Я использую следующий код Java для сортировки значений: -

 Collections.sort(values);

Он работает правильно, за исключением того, что сортировка выполняется следующим образом: - 1 10 2 3 4

Iнужно отсортировать следующим образом: - 1 2 3 4 10

Ответы [ 3 ]

4 голосов
/ 06 ноября 2011

Вы можете передать Comparator в вызов sort, чтобы преобразовать строку в число во время сортировки, или сохранить значение как число в первую очередь. При сравнении строк, 10 предшествует 2.

В качестве альтернативы, определите compareTo в своем классе (и используйте класс, который он реализует Comparable), если вам всегда нужно сортировать одинаково, и пропустите Comparator.

1 голос
/ 06 ноября 2011

Используйте List<Integer> (а не List<String>, который выглядит так, как вы используете).

1 голос
/ 06 ноября 2011

Вы сортируете Strings.Вы можете изменить значения для хранения подкласса Number или реализовать свой собственный Comparator для передачи в качестве аргумента сегмента метода sort, который будет выполнять "естественную сортировку".

См. Этот вопрос дляподробнее: Естественное сравнение строк порядка сортировки в Java - встроено?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...