logo

Sortowanie w kolekcji

Możemy sortować elementy:

  1. Obiekty ciągowe
  2. Obiekty klasy otoki
  3. Obiekty klas zdefiniowane przez użytkownika
Kolekcje class udostępnia statyczne metody sortowania elementów kolekcji. Jeśli elementy kolekcji są typu Set, możemy użyć TreeSet. Nie możemy jednak sortować elementów Listy. Klasa Collections udostępnia metody sortowania elementów typu List.

Metoda klasy Collections służąca do sortowania elementów listy

public void sort (Lista list): służy do sortowania elementów Listy. Elementy listy muszą być typu Comparable.

Uwaga: Klasa String i klasy Wrapper implementują interfejs Comparable. Jeśli więc przechowujesz obiekty klas string lub wrapper, będzie to porównywalne.

Przykład sortowania obiektów typu string

 import java.util.*; class TestSort1{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add('Viru'); al.add('Saurav'); al.add('Mukesh'); al.add('Tahir'); Collections.sort(al); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 
Przetestuj teraz
 Mukesh Saurav Tahir Viru 

Przykład sortowania obiektów typu string w odwrotnej kolejności

 import java.util.*; class TestSort2{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add('Viru'); al.add('Saurav'); al.add('Mukesh'); al.add('Tahir'); Collections.sort(al,Collections.reverseOrder()); Iterator i=al.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } } 
 Viru Tahir Saurav Mukesh 

Przykład sortowania obiektów klasy Wrapper

 import java.util.*; class TestSort3{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add(Integer.valueOf(201)); al.add(Integer.valueOf(101)); al.add(230);//internally will be converted into objects as Integer.valueOf(230) Collections.sort(al); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 
 101 201 230 

Przykład sortowania obiektów klas zdefiniowanych przez użytkownika

 import java.util.*; class Student implements Comparable { public String name; public Student(String name) { this.name = name; } public int compareTo(Student person) { return name.compareTo(person.name); } } public class TestSort4 { public static void main(String[] args) { ArrayList al=new ArrayList(); al.add(new Student('Viru')); al.add(new Student('Saurav')); al.add(new Student('Mukesh')); al.add(new Student('Tahir')); Collections.sort(al); for (Student s : al) { System.out.println(s.name); } } } 
 Mukesh Saurav Tahir Viru