я бы хотел добиться сортировки совокупности объектов по строковому значению. Однако, в зависимости от локали, используется коллатер. Из-за соображений производительности я не хочу использовать метод Collator compare () (как показано ниже в коде), а не класс CollationKey, поскольку API Java заявляет, что использование CollationKey намного быстрее.
Но как мне реализовать метод compareTo (), используя CollationKey? Насколько я понял, я должен полностью написать все методы сравнения самостоятельно, если буду использовать CollationKey. Так что я даже больше не смогу использовать методы Collections.sort () ... Я очень благодарен за пример, который прост для понимания и является наиболее эффективной реализацией для сортировки объектов Collection of Person с использованием CollationKey.
Спасибо!
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);
...