Pls dit ce qui ne va pas ici. J'ai une classe Person
que j'utilise comme clé dans TreeMap. J'ai également mis en œuvre Comparable
afin que puisse faire le tri.Pourquoi Java TreeMap n'imprime pas toutes ses entrées insérées
public class Person implements Comparable{
private String name;
private int age;
// getters and setters were omitted
@Override
public int compareTo(Object o) {
return 0;
}
}
Maintenant, je crée TreeMap
et les valeurs ajoutées dans comme:
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);
Après l'impression directe à l'aide System.out.println(treeMap);
Iam seulement obtenir la dernière valeur insérée à savoir
Sortie:{[email protected]=String4}
Je sais que les clés devraient être différentes mais un nouvel opérateur toujours s créer un nouvel objet, donc je pense que c'est bien. Mais je suis impuissant à comprendre ce qui ne va pas ici.
L'implémentation de la méthode 'compareTo' n'est pas la solution du tout. Vois ma réponse. – 4castle
Oui, je vois votre point. J'ai mis à jour la réponse pour inclure plus d'informations. Quoi qu'il en soit, la méthode compareTo doit être implémentée et non écrasée. J'ai donc ajouté des informations à ce sujet. – pczeus
Cela ne fonctionnerait toujours pas, le constructeur par défaut ne définit pas un nombre ssn. Utilisez ma réponse – 4castle