То, что я хотел бы достичь, - это сортировать коллекцию объектов по строковому значению. Однако в зависимости от языка с использованием коллатора. Из-за причин производительности я не хочу использовать метод Collator compare() (как показано ниже в коде), а не класс CollationKey, так как API Java утверждает, что использование CollationKey выполняется намного быстрее.Java: Сортировка коллекции с помощью CollatorKey
Но как реализовать метод 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);
...
Здравствуйте, Эриксон, большое спасибо за умное решение, я его реализую так, спасибо! – jan