Comment obtenir la clé et la valeur d'une TreeMap en particulier de l'indice de
J'ai un TreeMap avec un ensemble de Clés et de valeurs' paires. Comment puis-je obtenir à la fois la Clé et la Valeur à un Indice particulier de la TreeMap?
EDIT : @À TOUS : Merci. Mais je sais comment la mettre en œuvre en utilisant un supplément de ArrayList. J'ai juste pensé, est-il possible d'atteindre cet objectif sans l'aide d'un supplément de ArrayList.
Pourquoi voulez-vous faire? Les Indices sont internes à la TreeMap mise en œuvre. Vous ne devriez pas les utiliser. Vous devriez toujours se fier uniquement sur
Il est tout à fait délibérée que vous ne pouvez pas faire cela, sauf simplement en parcourant la
Je développe une application de musique et de stocker albumname des clés et des albumid en valeur. La situation est comme ça pour moi d'obtenir à la fois la clé et la valeur. Je peux réaliser ma tâche en utilisant un supplément de ArrayList, mais je veux la mettre en œuvre, tout simplement.
Vous pouvez utiliser la méthode
keys()
, values()
et get(key)
méthodes.Il est tout à fait délibérée que vous ne pouvez pas faire cela, sauf simplement en parcourant la
entrySet
dans le temps linéaire.Je développe une application de musique et de stocker albumname des clés et des albumid en valeur. La situation est comme ça pour moi d'obtenir à la fois la clé et la valeur. Je peux réaliser ma tâche en utilisant un supplément de ArrayList, mais je veux la mettre en œuvre, tout simplement.
Vous pouvez utiliser la méthode
keySet()
pour obtenir la liste des clés. Parcourir pour arriver à une en particulier et de l'utilisation get
méthode pour récupérer la valeurOriginalL'auteur Dileep Perla | 2012-06-22
Vous devez vous connecter pour publier un commentaire.
Si vous voulez vraiment utiliser TreeMap et d'obtenir par la poste, vous pouvez utiliser les éléments suivants:
OU (si vous voulez juste valeur)
Mais je vous suggère d'utiliser un itérateur, comme dans la méthode ci-dessus, il doit créer une matrice à chaque fois que vous le souhaitez à trouver (donc pas efficace) et aussi, vous devez être assez prudent pour s'assurer de l'indice ne vont pas hors de portée.
myMap.keySet().toArray(new Integer[0]);
Merci!OriginalL'auteur Chandra
Tout d'abord, je ne suis pas sûr de savoir pourquoi les gens d'ici sont très fréquemment des préoccupations au sujet de la validité d'une question. Il existe de nombreux cas où les gens ont été en mesure de maintenir une liste de tableaux dans l'ordre de tri. Le maintien d'une liste de tableaux dans l'ordre de tri est d'une inefficacité flagrante pour les grandes listes.
L'Entrée des nœuds de la norme Java (Oracle) source de distribution de ne pas maintenir la taille de leur descendant des arbres. De ce fait, il n'est pas possible d'identifier un élément à l'intérieur de la carte par un indice sans inefficace recherche séquentielle.
Je trouve cet inconvénient si grave que j'ai écrit mon propre AVL carte qui peut efficacement obtenir des éléments par index et de calculer indexOf(E). Rendre cela possible est aussi simple que de maintenir les tailles de chaque de gauche et de droite branches d'une Entrée. Il y a peu de chance que le Glazedlists bibliothèque dispose d'une base de l'arbre incorporée à quelque part. Vous souhaitera peut-être examiner.
OriginalL'auteur Booyah Johnson
Vous pouvez copier entrée de la valeur dans un tableau la liste et ensuite obtenir l'entrée souhaitée, par index:
Mais une) copie prend O(N) le temps et b) lorsque treeMap modifications, la liste devient invalide.
OriginalL'auteur Alexei Kaigorodov
Cela pourrait ne pas être le meilleur chemin, mais vous serez en mesure d'accéder à votre clé/valeur à un indice particulier.
OriginalL'auteur Jean-Christophe Fortin
Cela peut être utile
OriginalL'auteur Vineet Agarwal
ici est une autre option pour obtenir la clé à partir d'une valeur :
Map
ne garantit pas l'ordreOriginalL'auteur Réda