, co chciałbym osiągnąć, to sortować kolekcję obiektów według wartości łańcuchowej. Jednak w sposób zależny od ustawień lokalnych za pomocą kolektora. Ze względu na wydajność nie chcę używać metody CollaterKey porównywania (jak poniżej w kodzie) raczej z klasą CollationKey, ponieważ API java stwierdza, że użycie CollationKey jest znacznie szybsze.Java: Sortuj kolekcję za pomocą przycisku CollatorKey
Ale jak zaimplementować metodę compareTo() za pomocą klucza CollationKey? O ile to zrozumiałem, muszę całkowicie napisać wszystkie metody porównania, jeśli będę używał klucza CollationKey. Tak więc nie będę już mógł używać metod Collections.sort() ... Jestem bardzo wdzięczny za przykład, który jest łatwy do zrozumienia i najskuteczniejszą implementację do sortowania obiektów Collection of Person przy użyciu CollationKey.
Dziękujemy!
public class Person implements Comparable<Person> {
String lastname;
public int compareTo(Person person) {
//This works but it is not the best implementation for a good performance
Collator instance = Collator.getInstance(Locale.ITALY);
return instance.compare(lastname, person.lastname);
}
}
...
ArrayList list = new ArrayList();
Person person1 = new Person("foo");
list.add(person1);
Person person2 = new Person("bar");
list.add(person2);
Collections.sort(list);
...
Witaj, Erickson, bardzo dziękuję za inteligentne rozwiązanie, zaimplementuję to tak, dzięki! – jan