Java: Řazení
Z MiS
				
				
				
				
																
				
				
								
				
Řadícími algoritmy, jejich principem a vlastnostmi se zabývá stránka Řadící algoritmy.
Pro třídy s přirozeným řazením
-  Pokud je přirozené porovnávat instance třídy a je zřejmé, podle jakého kritéria porovnání probíhá (například srovnání čísel), pak u třídy implementujeme rozhraní: Comparable<Trida>
-  Rozhraní vyžaduje jedinou metodu: int compareTo(druha Trida)
- Metoda vrací:
- kladné číslo, když je tato instance „větší“ než druhá,
- záporné číslo, když je menší než druhá
- a 0 když jsou obě instance „stejné“.
 
Příklad:
public class Mince implements Comparable<Mince> { 
    private int hodnota; 
    public int compareTo(Mince druhaMince) { 
        return this.hodnota - druhaMince.hodnota; 
    } 
}
- Použití:
ArrayList<Mince> mince = new Array... Collections.sort(mince);
Některé třídy Javy už mají rozhraní Comparable implementované. Pak je můžeme řadit přímo: Collections.sort(cisla);. 
Příkladem takové třídy jsou objektové číselné typy jako Integer.
Pro třídy, kde je více možných kritérií řazení
- Pokud můžeme porovnávat podle více kritérií, vytvoříme samostatné třídy „komparátory“.
-  Implementují rozhraní: Comparator<Trida>
Příklad:
public class Auto { 
    private int cena; 
    private double spotreba; 
    private String nazev; 
    public int getCena() { return this.cena; } 
    public double getSpotreba() { return this.spotreba; } 
    public String getNazev() { return this.nazev; } 
} 
class AutoComparatorCena implements Comparator<Auto> { 
    public int compare(Auto a1, Auto a2) { return a1.getCena() - a2.getCena(); } 
} 
class AutoComparatorSpotreba implements Comparator<Auto> { 
    public int compare(Auto a1, Auto a2) { return Math.truncate(a1.getSpotreba() - a2.getSpotreba()); } 
} 
class AutoComparatorNazev implements Comparator<Auto> { 
    public int compare(Auto a1, Auto a2) { return a1.getNazev().compareTo(a2.getNazev()); } 
}
- Použití:
Collections.sort(auta, new AutoHmotnostComparator());
- Lze vytvořit také anonymní třídu pro porovnání (komparátor):
Collections.sort(auta,  new Comparator<Auto>() { public int compare(Auto a1, Auto a2) { return ...  } } );
