G
Gast2
Gast
Hallo,
ich bin auf der Suche nach einer SortedMap die folgendes kann.
Wenn man 2 gleiche Keys(equals) hat soll nur der Value verändert werden.
Wenn man aber einen eigenen Comparator hat soll dieser die Keys sortieren, aber nicht daüber bestimmen welcher Key rein soll oder nicht... Mir ist keine Map bekannt die sowas kann, darum wollte ich fragen ob einer eine kennt ?
Beispiel an der TreeMap:
Edit: Comparator eingefügt
EDIT EDIT: Gewünschte Ausgabe:
1 zz
1 ee
4 ff
ich bin auf der Suche nach einer SortedMap die folgendes kann.
Wenn man 2 gleiche Keys(equals) hat soll nur der Value verändert werden.
Wenn man aber einen eigenen Comparator hat soll dieser die Keys sortieren, aber nicht daüber bestimmen welcher Key rein soll oder nicht... Mir ist keine Map bekannt die sowas kann, darum wollte ich fragen ob einer eine kennt ?
Beispiel an der TreeMap:
Java:
public class TreeMapDemo {
public static void main(String[] args) {
MyKey myKey1 = new MyKey();
myKey1.layer = 1;
MyKey myKey2 = new MyKey();
myKey2.layer = 4;
MyKey myKey3 = new MyKey();
myKey3.layer = 1;
Map<MyKey, String> map = new TreeMap<MyKey, String>(new MyComparator ());
//die hier sollten rein
map.put(myKey1, "dd");
map.put(myKey2, "ff");
map.put(myKey3, "ee");// hier ist das Problem wo ich suche dieser key soll ein neuer eintrag geben und nicht die value von myKey1 überschreiben.
// der sollte übeschrieben werden das equals keys gleich sind
map.put(myKey1, "zz");
//sollte 3 sein ist aber 2
System.out.println(map.size());
}
public static class MyKey{
public Integer layer;
}
public static class MyComparator implements Comparator<MyKey>{
@Override
public int compare(MyKey o1, MyKey o2) {
return o1.layer.compareTo(o2.layer);
}
}
}
Edit: Comparator eingefügt
EDIT EDIT: Gewünschte Ausgabe:
1 zz
1 ee
4 ff
Zuletzt bearbeitet von einem Moderator: