Créer un SortedMap en Java avec un Comparateur
Je veux créer un TreeMap
en Java avec un ordre de tri personnalisé. Le tri clés de la chaîne doivent être triés selon le second caractère. Les valeurs de chaîne.
Exemple de carte:
Za,FOO
Ab,Bar
Un
Dans la terminologie de Java, un tableau associatif est appelé une "carte" et non un "hash" ... surtout quand on parle d'un type de Carte qui n'utilise pas de hachage!
TreeMap
ne pas utiliser hashCode()
. Qu'entendez-vous par "un classement de hachage"? Voulez-vous dire SortedMap<K,V>
?Dans la terminologie de Java, un tableau associatif est appelé une "carte" et non un "hash" ... surtout quand on parle d'un type de Carte qui n'utilise pas de hachage!
OriginalL'auteur unj2 | 2010-05-01
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un comparateur comme ceci:
Exemple:
Notez que cela suppose simplement que l'
String
a un caractère à l'indice 1. Il jetteStringIndexOutOfBoundsException
si elle ne le fait pas.Alternativement, vous pouvez également utiliser cette comparaison:
Cette soustraction "truc" est cassé en général, mais il fonctionne très bien ici parce que la soustraction de deux
char
ne débordera pas unint
.La
substring
etcompareTo
solution ci-dessus est plus lisible.Voir aussi:
OriginalL'auteur polygenelubricants
En supposant que vous ne veux pas dire de Hachage comme dans la fonction de hachage ou le tri...
Vous pouvez facilement accomplir ceci par la création d'une classe "wrapper" pour la Chaîne et en remplaçant la méthode compareTo
OriginalL'auteur CheesePls