Bitte sagen Sie, was hier passiert. Ich habe eine Person
Klasse, die ich als Schlüssel in TreeMap verwende. Ich habe Comparable
auch so implementiert, dass TreeMap
Sortieren kann.Warum Java TreeMap nicht alle eingefügten Einträge druckt
public class Person implements Comparable{
private String name;
private int age;
// getters and setters were omitted
@Override
public int compareTo(Object o) {
return 0;
}
}
Jetzt habe ich TreeMap
und addierten Werte darin als:
Map treeMap=new TreeMap<Person,Object>();
treeMap.put(new Person(), "String1");
treeMap.put(new Person(), "String2");
treeMap.put(new Person(), "String3");
treeMap.put(new Person(), "String4");
System.out.println(treeMap);
Nach direkt Drucken mit System.out.println(treeMap);
Iam nur den zuletzt eingefügten Wert, dh
Ausgang:{[email protected]=String4}
Ich weiß Schlüssel sollten anders sein, aber neuer Betreiber immer s erstelle ein neues Objekt, also denke ich, es ist in Ordnung. Aber ich bin hilflos herauszufinden, was hier los ist.
Die 'compareTo' Methode ist nicht die Antwort. Siehe meine Antwort. – 4castle
Ja, ich verstehe deinen Standpunkt. Ich habe die Antwort aktualisiert, um weitere Informationen hinzuzufügen. Unabhängig davon sollte die compareTo-Methode implementiert und nicht ausgeschlossen werden. Also habe ich Informationen dazu hinzugefügt. – pczeus
Dies funktioniert immer noch nicht, der Standardkonstruktor legt keine ssn-Nummer fest. Verwenden Sie meine Antwort – 4castle