Pro seřazení seznamu se v Javě používá třída java.util.Collections a její metoda sort(). Tato metoda je přetížená a má možnost jako paramer mít objekt implementující Comparator, což je rozhraní s metodou compare(objekt_1, objekt_2). Jako Comparator lze tedy použít i instanci třídy Collator, která rozhraní Comparator implementuje. Výhodou Collatoru je to, že umožňuje řetězce porovnávat dle locale. Pokud budeme chtít správně porovnávat a řadit řetězce s českou diakritikou, je třeba použít Collator a české locale.
import java.text.Collator;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
public class AppStringCompare {
public static void main(String[] args) {
List<String> list = Arrays.asList("zelí", "mrkev", "česnek", "petržel", "řepa");
Collator collator = Collator.getInstance(new Locale("cs", "CZ"));
Collections.sort(list, collator);
System.out.println(Arrays.toString(list.toArray()));
}
}
Výsledek
[česnek, mrkev, petržel, řepa, zelí]