我想實現的目標是按字符串值排序對象的集合。但是,在使用collator的語言環境依賴方式中。由於性能原因,我不想使用Collator compare()方法(如下面的代碼)而不是CollationKey類,因爲java API聲明使用CollationKey要快得多。Java:使用CollatorKey對一個集合進行排序
但是,如何使用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);
...
你好埃裏克森,非常感謝你的智能解決方案,我會像這樣實現它,謝謝! – jan 2009-09-16 02:03:13