Erstmal hallo,
bin ein Java Neuling aber ins Thema Grundlagen passte es irgendwie nicht rein. Im Grunde helfe ich nur jemanden ein Plugin für Bukkit zu schreiben, allerdings intressiert es mit selber...
Die Herrausforderung. wir bekommen über eine Methode ein Map<String, Objekt> gefullt in String stehen Namen und im Object im Grunde nur ein Integer. Jetzt haben wir versucht dieses nach Object zu sortieren und zwar abwärst somit hatten wir die Map erstmal mit irgendwas gefüllt wie es später auch sein sollte:
ABC 5
BCD 12
CDE 6
DEF 1
und wollten diese nach den Zahlen Sortieren nur stellt sich dieses am anfang einfach gedachte, sehr schwer herraus.
Zuerst hatten wir Versucht
Da kam dann auch eine Ausgabe nur unsortiert.
Danach hatten wir leicht verändert, da uns auffiel das es immer Natural sort hieß.
Das klappe auch allerding kam die Liste dann genau andersrum.
Somit mussten wir das Object nur in Interger bekommen... dachten wir... Haben somit Rumexperimentiert und entsprechen nur eine kleine änderung am ende gemacht.
Das sah zwar nicht schön aus aber die einzige gefundene methode wo es keinen Fehler gab der uns sagte das ein Case von String to Integer nicht möglich ist.
Jetzt ausprobiert und schaue da... ein Fehler er sagt jetzt
"NumberFormatException: For input string "A"" ????
Ich dachte der Compare beläuft sich aufs Value also das Object das mit Zahlen gefütter ist und nicht auf den Key.
Und da ich nach locker 5 Std immernoch nichts gefunden habe und mir Java langsam aufn keks ging, dachte ich frage hier bevor ich nie wieder mit Java arbeite, vieleicht hab ich auch nur ein Brett vorm Kopf.
Gruß Lonium
bin ein Java Neuling aber ins Thema Grundlagen passte es irgendwie nicht rein. Im Grunde helfe ich nur jemanden ein Plugin für Bukkit zu schreiben, allerdings intressiert es mit selber...
Die Herrausforderung. wir bekommen über eine Methode ein Map<String, Objekt> gefullt in String stehen Namen und im Object im Grunde nur ein Integer. Jetzt haben wir versucht dieses nach Object zu sortieren und zwar abwärst somit hatten wir die Map erstmal mit irgendwas gefüllt wie es später auch sein sollte:
ABC 5
BCD 12
CDE 6
DEF 1
und wollten diese nach den Zahlen Sortieren nur stellt sich dieses am anfang einfach gedachte, sehr schwer herraus.
Zuerst hatten wir Versucht
Java:
Map<String,Object> MapList;
MapList = confSec.getValues(true);
Map<String, Object> sortedList = new TreeMap<String, Object>(MapList);
for (@SuppressWarnings("rawtypes") Map.Entry entry : sortedList.entrySet())
{
System.out.println("Key: " + entry.getKey() + " Value: " + entry.getValue());
}
Da kam dann auch eine Ausgabe nur unsortiert.
Danach hatten wir leicht verändert, da uns auffiel das es immer Natural sort hieß.
Java:
Map<String, Object> sortedList = new TreeMap<String, Object>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return -(o1.compareTo(o2));
}
});
sortedList.putAll(MapList);
Das klappe auch allerding kam die Liste dann genau andersrum.
Somit mussten wir das Object nur in Interger bekommen... dachten wir... Haben somit Rumexperimentiert und entsprechen nur eine kleine änderung am ende gemacht.
Java:
public int compare(Object o1, Object o2) {
// reverse..
Integer i1 = Integer.parseInt(o1.toString());
Integer i2 = Integer.parseInt(o2.toString());
return -(i1.compareTo(i2));
}
Das sah zwar nicht schön aus aber die einzige gefundene methode wo es keinen Fehler gab der uns sagte das ein Case von String to Integer nicht möglich ist.
Jetzt ausprobiert und schaue da... ein Fehler er sagt jetzt
"NumberFormatException: For input string "A"" ????
Ich dachte der Compare beläuft sich aufs Value also das Object das mit Zahlen gefütter ist und nicht auf den Key.
Und da ich nach locker 5 Std immernoch nichts gefunden habe und mir Java langsam aufn keks ging, dachte ich frage hier bevor ich nie wieder mit Java arbeite, vieleicht hab ich auch nur ein Brett vorm Kopf.
Gruß Lonium