Предисловие
Интерфейс списка в пакете java.util наследует интерфейс коллекции и используется для хранения коллекций объектов. Следовательно, при сортировке этих объектов либо класс объектов может сравнивать один и тот же объект, либо использовать компаратор для выполнения сравнения и сортировки.
Класс студентов, включая атрибуты имени и возраста, отсортируется по восходящему порядку в имени при сравнении, и если имена одинаковы, он сортируется в порядке возрастания в возрасте.
Первый тип: сравнение классов сущности сами по себе
(Реализуйте сопоставимый интерфейс: public interface Comparable<T> , есть объявление метода: public int compareTo(T o); )
Пример кода:
Общественный класс учеников реализует сопоставимые <tood> {Private String name; частный int возраст; public Student () {super (); // TODO Auto Generated Constructor Stub} Public Student (String name, int age) {super (); this.name = name; this.age = возраст; } public String getName () {return name; } public void setName (string name) {this.name = name; } public int getage () {return Age; } public void setage (int age) {this.age = age; } @Override public int compareto (студент o) {// todo автоматически генерируемый метод stub int flag = this.name.compareto (o.name); if (flag == 0) {flag = this.age - o.age; } вернуть флаг; }} Затем используйте sort(Comparator<? super E> c) метод класса списка или sort(List<T> list) класса инструментов java.util.Collections (на самом деле, в нем есть только одно предложение: list.sort(null); ), чтобы сортировать:
Список <Tlade> Студенты = новый ArrayList <tlond> (); Студенты. Адд (новый студент («A», 10); Студенты. Адд (новый студент («B», 12)); Студенты. Адд (новый студент («B», 11)); Студенты. Адд (новый студент («AC», 20)); Студенты.sort (null); //Collections.sort(students);
результат:
A 10 AC 20 B 11 B 12
Второй тип: сортируйте с помощью компаратора.
Пример кода:
студент открытого класса {частное название строки; частный int возраст; public Student () {super (); // TODO Auto Generated Constructor Stub} Public Student (String name, int age) {super (); this.name = name; this.age = возраст; } public String getName () {return name; } public void setName (string name) {this.name = name; } public int getage () {return Age; } public void setage (int age) {this.age = age; }} Comparator java.util.Comparator Class - это интерфейс ( public interface Comparator<T> ), который содержит int compare(T o1, T o2); и другие методы:
Наш компаратор хочет реализовать этот интерфейс и реализовать метод compare :
Частный класс Студент Компания реализует компаратор <ditlad> {@override public int compare (студент O1, студент O2) {// todo Автогенерированный метод stub int flag = o1.getName (). CompareTo (o2.getName ()); if (flag == 0) {flag = o1.getage () - o2.getage (); } вернуть флаг; }} При сравнении вы можете использовать метод sort(Comparator<? super E> c) List (или Sort (List <t> List, Comporator <? Super T> C) Метод java.util.Collections Class для sort(List<T> list, Comparator<? super T> c) для сортировки.
Список <Tlade> Студенты = новый ArrayList <tlond> (); Студенты. Адд (новый студент («A», 10); Студенты. Адд (новый студент («B», 12)); Студенты. Адд (новый студент («B», 11)); Студенты. Адд (новый студент («AC», 20)); Тест t = новый тест (); Студенты.sort (t.new StudentComparator ()); //Collections.sort(students, t.new StudentComparator ()); для (студент -студент: студенты) {system.out.println (student.getName ()+""+studive.getage ()); } Результат такой же, как первый метод:
A 10 AC 20 B 11 B 12
Суммировать
Выше всего посвящено сортировке в Java. Я надеюсь, что содержание этой статьи поможет для каждого обучения или работы каждого. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения.