Hallo!
Ich habe mal wieder eine Frage zu meiner Comparator Klasse
Diesmal allerdings eine logische.
Ich will eine TreeMap erstellen, die nach values sortiert ist.
Nun gibt es ja den einen TreeMap Konstruktor, der einen Comparator annimmt. Deshalb habe ich den hier geschrieben:
Jetzt will ich eine TreeMap namens "players" erstellen, die nach Value geordnet ist. Dazu muss ich mir jetzt ja aber erst mal einen comparator holen:
Tja, das geht jetzt aber nicht, weil es noch keine TreeMap "players" gibt. Wenn ich aber erst die TreeMap namens "players" erstelle, kann ich keinen eigenen Comparator übergeben...
Wie lässt sich dieses logische Problem lösen?
Ich habe mal wieder eine Frage zu meiner Comparator Klasse
Diesmal allerdings eine logische.
Ich will eine TreeMap erstellen, die nach values sortiert ist.
Nun gibt es ja den einen TreeMap Konstruktor, der einen Comparator annimmt. Deshalb habe ich den hier geschrieben:
Code:
public class MapValueComparator <K, V extends Comparable <V>> implements Comparator <K>
{
private Map <K, V> map;
public MapValueComparator(Map <K, V> map)
{
this.map = map;
}
public final int compare(K k1, K k2)
{
V v1 = map.get(k1);
V v2 = map.get(k2);
return v1.compareTo(v2);
}
}
Jetzt will ich eine TreeMap namens "players" erstellen, die nach Value geordnet ist. Dazu muss ich mir jetzt ja aber erst mal einen comparator holen:
Code:
Comparator <String> comp = new MapValueComparator <String, Integer>(players);
Tja, das geht jetzt aber nicht, weil es noch keine TreeMap "players" gibt. Wenn ich aber erst die TreeMap namens "players" erstelle, kann ich keinen eigenen Comparator übergeben...
Wie lässt sich dieses logische Problem lösen?