我想要实现的是按字符串值对对象集合进行排序。但是,以依赖于语言环境的方式使用整理器。由于性能原因,我不想使用 Collator compare() 方法(如下面的代码)而不是 CollationKey 类,因为 java API 声明使用 CollationKey 要快得多。
但是如何使用 CollationKey 实现 compareTo() 方法?据我了解,如果我要使用 CollationKey,我必须自己完全编写所有比较方法。所以我什至不能再使用 Collections.sort() 方法......我非常感谢一个易于理解的示例以及使用 CollationKey 对 Person 对象的集合进行排序的最有效实现。
谢谢!
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);
...