可比Java:使用CollatorKey对集合进行排序
我想实现的是按字符串值对对象集合进行排序。但是,使用collator的方式取决于区域设置。由于性能原因,我不想使用Collator compare()方法(如下代码中所示),而是使用CollationKey类,因为java API声明使用CollationKey要快得多
但是如何使用CollationKey实现compareTo()方法呢?据我所知,如果要使用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);
...
# 1 楼答案