У меня есть LinkedList, который содержит данные для ученика, у него есть имя, gpa и ID # для каждого ученика, и каждый ученик является Узлом в LinkedList. Я хочу отсортировать свой LinkedList в алфавитном порядке по их именам, но я не понимаю, как использовать CompareTo() для сортировки. Поэтому прямо сейчас у меня есть метод compareTo, используя строку compareTo текущего name.compareTo (name_of_inputStudent). Итак, в моем методе сортировки, как бы я использовал этот вывод для сортировки моего массива? Я действительно не понимаю, как это поможет мне определить, какая строка принадлежит в позиции LinkedList.Использование compareTo() для сортировки LinkedList по алфавиту?
ответ
Если вам разрешено использовать библиотеку Java, вам не нужно ничего делать: просто передайте свой список sort
, который автоматически использует compareTo
, когда вы не передадите отдельный компаратор. Обратите внимание, что сортировка LinkedList
дороже, чем сортировка ArrayList
, поскольку для большинства современных алгоритмов сортировки на основе сравнения требуется произвольный доступ к списку, который является O (1) для списка массивов, но O (n) для связанного списка.
Если вы установили на реализацию своего собственного алгоритма сортировки, compareTo
позволяет определить, если два объекта находятся в упорядоченном положении или если они должны поменяться местами:
- Если объект ближе к передней части списка по сравнению с объектом, расположенным дальше от фронта, а результат отрицательный или нулевой, объекты находятся в правильном порядке относительно друг друга.
- Если результат положительный, объекты должны меняться местами, так что один дальше с самого начала было бы ближе к началу.
Эти два соображения достаточно для реализации bubble sort.
Вы можете использовать метод Collections.sort(...)
. Вы можете найти javadoc here. Для использования метода ваш класс Student
должен реализовать интерфейс Comparable
. Итак, вы должны выбрать критерии сортировки для своего класса Student
и реализовать его в методе compareTo
.
В вашем классе Node LinkedList реализуется интерфейс Comparable и переопределяет метод compareTo. Затем вы можете использовать Collections.sort (List). Поскольку вы используете связанный список, сортировка будет неэффективной, так как получение элемента в LinkedList является последовательным обходом, то есть O (n).
- 1. Как сортировать по алфавиту с помощью compareTo?
- 2. Как отсортировать LinkedList по алфавиту?
- 3. Список сортировки по алфавиту
- 4. Нужна помощь сортировки по алфавиту текстового файла
- 5. C++ Qt Использование Quicksort для сортировки строк по алфавиту
- 6. Плагин Resharper для сортировки методов по алфавиту?
- 7. сравнение 2 строки по алфавиту для сортировки
- 8. Подпрограммы модуля сортировки по алфавиту
- 9. Overiding CompareTo в Сопоставимые для сортировки
- 10. Сортировка списка по алфавиту с помощью метода compareTo()
- 11. Сортировка по цвету после сортировки по алфавиту
- 12. Использование CompareTo() для сортировки на основе нескольких столбцов
- 13. Regex для сортировки файлов в папках по алфавиту по фамилии?
- 14. Хэш сортировки по алфавиту в рубине
- 15. Избегайте автоматической сортировки по алфавиту MySQLi
- 16. Сортировка по алфавиту без сортировки методом
- 17. Сортировка связанного списка по алфавиту
- 18. Использование сортировки Bubble для сортировки файла по фамилии?
- 19. Использование NSFetchRequest для сортировки по дате и ячейкам по алфавиту с часовыми поясами
- 20. Объединить несколько строк ввода для сортировки по алфавиту
- 21. Алгоритм сортировки без использования compareTo
- 22. Сортировка NSArray по алфавиту
- 23. Сортировать элементы в Eclipse по видимости без сортировки по алфавиту
- 24. Использование коллекции сортировки для ArrayList
- 25. Вставка Сортировка для сортировки узлов в LinkedList
- 26. Сортировка по алфавиту javascript
- 27. DB2 - сортировка по алфавиту
- 28. Использование compareTo и Collections.sort
- 29. Java Вставка имен ~ CompareTo
- 30. Сортировка атрибутов HTML по алфавиту
Вы можете показать код, который у вас уже есть? –
См. [Collections.sort()] (https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#sort-java.util.List-) – GriffeyDog
Возможно, вам необходимо реализовать сопоставимые в вашем классе контейнера и переопределить метод compareTo(). Затем вы можете вызвать Collections.sort() в своем списке, чтобы отсортировать имена. – Palcente