TreeMap comment ça sorte
Comment le TreeMap
de tri? disons par exemple que vous avez la carte suivante:
TreeMap<String, Integer> treemap = new TreeMap<>();
treemap.put("lol", 1);
treemap.put("Marc", 2);
treemap.put("Jesper", 3);
Iterator ittwo = treemap.entrySet().iterator();
while (ittwo.hasNext()) {
Map.Entry pairs = (Map.Entry)ittwo.next();
System.out.println(pairs.getKey() + " = " + pairs.getValue());
ittwo.remove();
}
La sortie de ce est:
Jesper = 3
Marc = 2
lol = 1
Donc, si ce n'est pas par ordre alphabétique, ce sera quoi?
OriginalL'auteur Marc Rasmussen | 2012-11-30
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas seulement alphabétique, mais il est aussi haut/bas de casse.
De sortie:
Donc, si vous n'en avez pas besoin, vous pouvez utiliser votre personnalisé de comparaison, et de comparer chaîne en minuscules:
De sortie:
new Comparator<String>() { public int compare(String o1, String o2) { return o1.compareToIgnoreCase(o2); } }
Java 8:
new TreeMap<>((o1, o2) -> o1.compareToIgnoreCase(o2))
OriginalL'auteur kornero
Comme indiqué dans la JavaDoc un
TreeMap
"...est triée selon l'ordre naturel de son clés..." (l'emphase est mienne).Ainsi que votre résultat est correct, dans la lumière que la baisse des cas
l
est après majusculesM
dans l'UTF "alphabet".Si vous souhaitez remplacer le comportement par défaut, vous pouvez fournir un
Comparator
à laTreeMap
constructeur.OriginalL'auteur Anders R. Bystrup
Que vous n'avez pas passer toute
Comparator
par le constructeur, ce qui permettra de construire un nouveauTreeMap
à l'aide de l'ordre naturel de ses touches.En java l'ordre naturel signifie
lexicographical
commande.OriginalL'auteur Subhrajyoti Majumder
vous sont en fait obtenir la bonne sortie.
lettres majuscules sont lexcographically supérieure lettres minuscules
OriginalL'auteur PermGenError