lo que me gustaría lograr es ordenar una colección de objetos por un valor de cadena. Sin embargo, en una forma dependiente de la configuración regional utilizando un clasificador. Debido a razones de rendimiento, no quiero usar el método Collator compare() (como se muestra a continuación en el código) en lugar de la clase CollationKey, ya que la API java indica que usar CollationKey es mucho más rápido.Java: ordenar una colección utilizando una CollatorKey
Pero, ¿cómo implemento el método compareTo() usando la CollationKey? Por lo que yo entendí, tengo que escribir completamente todos los métodos de comparación por mi cuenta si voy a utilizar una CollationKey. Así que ya no podré usar los métodos Collections.sort() ... Estoy muy agradecido por un ejemplo que es fácil de entender y la implementación más eficiente para ordenar los objetos Collection of Person utilizando una CollationKey.
¡Gracias!
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);
...
Hola Erickson, muchas gracias por la solución inteligente, lo implementaré así, ¡gracias! – jan