Как да сортирате свързан списък в Java
Сортиране на свързан списък в Java
Стъпка 1
Декларирайте свързания списък, като създадете нов обект на LinkedList и го зададете на променлива "LinkedList". LinkedList наследява от общия клас Списък, така че всеки метод, който списъкът приема, също ще бъде приет от обекта на LinkedList.
"" LinkedList l = нов LinkedList (); ""
Стъпка 2
Добавете обекти от същия тип (като цели числа) в списъка. Те могат да бъдат предмети от всякакъв вид, но за да могат да сортират свързания списък, те трябва да бъдат от един и същи тип.
Стъпка 3
Използвайте метода List.addFirst, за да вмъкнете нови обекти в началото на списъка, така че добавените от вас обекти ще бъдат в обратен ред. Ако искате да ги добавите в края на списъка, използвайте метода List.addLast.
"list.addFirst (1); list.addFirst (3); list.addFirst (2);"
Стъпка 4
Използвайте итератор, за да завършите списъка и го отпечатайте преди и след това, за да видите какво прави метода на сортиране.
"" за (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());
Сортирайте с помощта на стандартните и персонализираните сравнителни елементи
Стъпка 1
Сортирайте списъка със стандартния сравним. Сравнението е обект, който сравнява два обекта. Обектът за сравнение по подразбиране използва оператора по-малък от, така че списъкът ще бъде сортиран във възходящ ред. За да подредите списъка, използвайте статичния метод Collections.sort.
"" Collections.sort (списък); "
Стъпка 2
Сортирайте списъка с потребителски сравнител, като напишете клас, който изпълнява интерфейс за сравняване и го предава като аргумент за сортиране. Класът, който изпълнява сравнението, просто трябва да приложи простия метод "сравнение".
"" Публична класа GreaterThan изпълнява Comparator else, ако (x == y) {return 0;} else {return 1;}}} "
Стъпка 3
Използвайте обаждането в Collections.sort, като подадете нова instance на GreaterThan като втори аргумент. Тъй като обектите, които са по-големи, ще бъдат сортирани по-рано в списъка, списъкът ще бъде сортиран в низходящ ред, вместо възходящ. Като алтернатива, ако искате да поръчате списък от обекти от персонализиран клас, който сте написали сами, този клас може да внедри сравнителния интерфейс вместо да използва отделен клас Comparator.
"" Collections.sort (списък, нов GreaterThan ()); ""