Sortierung Collection

Hallo,
ich habe hier eine Liste, die ich nach description sortiert haben möchte;
(Beispiel code)
Price besteht aus
String description;
float price;

LinkedList list = new LinkedList();
Price p1 = new Price();
p1.setDescription("Deutschland");
p1.setPrice(1.0F);
list.add(p1);
Price p2 = new Price();
p2.setDescription("Zypern");
p2.setPrice(1.0F);
list.add(p2);
Price p3 = new Price();
p3.setDescription("Österreich");
p3.setPrice(1.0F);
list.add(p3);
Price p4 = new Price();
p4.setDescription("Australien");
p4.setPrice(1.0F);
list.add(p4);

for (Price price : list) {
 System.out.println(price.description);
}

System.out.println("===========================");

Collections.sort(list, new Comparator() {
 public int compare(Object o1, Object o2) {
 String desc1 = ((Price) o1).getDescription();
 String desc2 = ((Price) o2).getDescription();
 return desc1.compareTo(desc2);
 }
});

for (Price price : list) {
 System.out.println(price.description);
}

das ergibt folgende Ausgabe:

Deutschland
Zypern
Österreich
Australien
===========================
Australien
Deutschland
Zypern
Österreich

Ich muss aber nach Locale sortieren. Aber ich weiss nicht, wie ich die sort-Methode schreiben muss.

Collator instance = Collator.getInstance(Locale.GERMANY);
/\*
Fehlerhaft: java.lang.ClassCastException: Price
Collections.sort(list, instance);
for (Price price : list) {
 System.out.println(price.description);
}
\*/

Jemand eine Idee?
Steffi

Hallo Steffi,

das sollte es tun:

 final Collator collator = Collator.getInstance(Locale.GERMANY);
 Collections.sort(list, new Comparator() 
 {
 public int compare(Object o1, Object o2) 
 {
 String desc1 = ((Price) o1).getDescription();
 String desc2 = ((Price) o2).getDescription();
 return collator.compare(desc1, desc2);
 }
 });

Der Collator kann nunmal nur Strings und keine Prices vergleichen.

Alles Gute wünscht
… Michael

danke dir, genau so soll es sein.
steffi