Этот вопрос вводит два метода сортировки () класса инструментов коллекций следующим образом:
1.
Формат 1: Public Static <T расширяется сопоставимо <? Super T >> void sort (список <t> list)
ПРИМЕЧАНИЕ. Все дженерики <T> В этом методе - все подклассы сопоставимого интерфейса, то есть только данные типа подкласса сопоставимого интерфейса можно сравнить и отсортировать. Если другие типы данных должны сравниваться и отсортировать, сопоставимый интерфейс должен быть унаследован и
Переопределение equals () и сравнение () методы. Среди них класс строковых и целочисленного класса являются сопоставимыми подклассами интерфейса и могут быть отсортированы, в то время как основные типы не могут быть отсортированы. Элементы сравнения указаны в классе
Формат 2: Public Static <t> void sort (список <t>, компаратор <? Super t> c)
Примечание. Этот метод указывает компаратор метода сравнения <? Super T> C, то есть C должен реализовать компаратор <? Super T> интерфейс, переопределите метод сравнения (), чтобы указать элемент сравнения. Элементы сравнения указаны вне класса, что является более гибким
2. Пример
Общие способы получить строки и числа в примере:
/ *** Сгенерировать случайные и неконтролирующие строки: число генерировать количество строк*/ public Static List <string> Generatestring (int Number) {list <string> listString = new ArrayList <> (); // используется для хранения списка возвращаемых значений <Integer> length = null; // длина строки stringbuffer sb = new StringBuffer (); // промежуточная переменная int control = 0; // Строка управления [] chars = new String [] {«a», «b», «c», «d», «e», «f», «g», «H», «i», «j», «k», «L», «M», «n», «o», «P», «q», «r», «x», «w», «w», «w», ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", "," " "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "t", "u", "V", "w", "x", "y", "z"}; while (true) {// end of Control if (control == number) {break; } // Сгенерируйте случайное число и генерируйте 36-битный 2AAAB761-4341-4968-ACEB-3861EE3824B2 uuid type строка данных uuid = uuid.randomuuid (). SB.SetLength (0); // Получить длину случайной строки, длина не составляет 0 do {length = getDiffno (1, 11); } while (length.get (0) == 0); // исправить строку для (int i = 0; i <length.get (0); i ++) {string str = uuid.substring (i*3, (i*3+3)); // конвертировать строку STR в шестнадцатеричную и получить его значение int x = integer.parseint (str, 16); // Получить остаток: x % 0x3e-0x3e = 3*16 + 14 = 62, где chars имеет 62 символа sb.append (chars [x % 0x3e]); } listString.Add (sb.toString ()); контроль ++; } return ListString; }/ *** Сгенерировать случайные и неконтролируемые цифры: n генерируйте числа макс. Создание диапазона*/ public Static List <Integer> getDiffno (int n, int max) {// генерировать [0-n] не повторные случайные числа // Список, используемые для сохранения этих случайных чисел <integer> list = new ArrayList <> (); Случайный случайный = new Random (); Целое число K; for (int i = 0; i <n; i ++) {do {k = random.nextint (max); } while (list.contains (k)); list.add (k); } return List; } 1. Сортировать список целочисленных дженериков
/*** 1. Сортировать список целочисленных дженериков через метод collections.sort (); * Create a List of Integer generics, insert ten non-repetitive random integers within 100, and call the Collections.sort() method to sort them* 2. Sort rules: first number and then letters, numbers 0-9, the order of letters AZ az*/ public void listIntegerSort() { // Insert ten non-repetitive random integers within 100 List<Integer> integerList = getDiffNo(10, 100); System.out.println("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- integer : integerList) { System.out.println ("element:" + Integer); System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2. Сортировать список строк дженериков
/*** 1. Сортировать список строк Generics; Создайте список string generics, добавьте элементы строк вне порядка, * вызовите метод сортировки и снова выведите порядок сортировки */ public void listStringsort () {list <string> stringlist = new ArrayList <string> (); stringlist.add ("eipjlcx"); stringlist.add ("wvqrufc"); stringlist.add ("j"); stringlist.add ("hdau2g"); stringlist.add ("m0wswhd3"); System.out.println ("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- / *** Сортировка Списка генериков строки, требующих случайной генерации 10 непоточечных строк, а длина строки находится в пределах 10*/ public void listStringRandomsort () {// Сгенерировать список случайных строк <string> listString = Generatestring (10); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("--------------------------------------------------------------");3. Сортировка сортировки других типов дженериков
Реализация класса курса
/** * Класс курса * @author Administrator * */Public Class Course {public String Id; Общественное название строки; public Course (String Id, String name) {this.id = id; this.name = name; } public course () {} @Override public int hashcode () {final int prime = 31; int result = 1; result = prime * result + ((имя == null)? 0: name.hashcode ()); результат возврата; } @Override public boolean equals (Object obj) {if (this == obj) вернуть true; if (obj == null) вернуть false; if (! (obj ancessionof course)) вернуть false; Курс другой = (курс) obj; if (name == null) {if (ore.name! = null) вернуть false; } else if (! name.equals (ore.name)) вернуть false; вернуть истину; }} Класс студентов реализует сопоставимый интерфейс и устанавливает элементы сравнения в классе
Import java.util.hashset; import java.util.set;/** * Класс студентов * @author Administrator * *//Public Class Clout Scileblible <toodtle> {public String Id; Общественное название строки; Общественный набор <cours> Курсы; Public Student (String Id, String name) {this.id = id; this.name = name; this.courses = new Hashset <cooud> (); } @Override public int hashcode () {final int prime = 31; int result = 1; result = prime * result + ((имя == null)? 0: name.hashcode ()); результат возврата; } @Override public boolean equals (Object obj) {if (this == obj) вернуть true; if (obj == null) вернуть false; if (! (obj exantseft of Student)) вернуть false; Студент другой = (студент) obj; if (name == null) {if (ore.name! = null) вернуть false; } else if (! name.equals (ore.name)) вернуть false; вернуть истину; } @Override public int compareto (студент o) {// Установить идентификатор в качестве элемента сравнения // todo автоматически генерируемый метод recute this.id.compareto (o.id); }} Реализовать интерфейс компаратора и установить элементы сравнения за пределами класса
Import java.util.comparator; открытый класс StudentComparator реализует компаратор <tlapt> {@override public int compare (студент O1, студент O2) {// todo Автопогенерированный метод return o1.name.compareto (o2.name); }} Сравнивая уроки учеников
/*** Сортируют списки других типов дженериков, принимая студента в качестве примера. */ public void listComparatorsort () {list <toodtlect> studentlist = new ArrayList <toold> (); Список <Integer> list = getDiffno (4, 1000); StudentList.Add (новый студент (list.get (0) + "", "mike")); StudentList.Add (новый студент (list.get (1) + "", "Angela")); StudentList.Add (новый студент (list.get (2) + "", "lucy")); StudentList.Add (новый студент (1000 + "", "Beyonce")); System.out.println ("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("Student:" + Student.id + ":" + Student.name); System.out.println("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.