7
votes

Comment énumérer les clés et les valeurs d'une haquetable?

J'ai un problème; J'ai des données et je le montre avec hashtable Par exemple, j'écris: xxx

mais cela me montre juste des valeurs comment puis-je montrer des valeurs et des clés ensemble? Par exemple, ce

si ma clé est "a" Et ma valeur est "B" me montrer ceci: xxx

merci ...


2 commentaires

Un meilleur titre pourrait être: comment énumérer les clés et les valeurs d'une haquetable


@Lachlan: Oui en effet. @Op: a pris la liberté de le changer.


3 Réponses :


1
votes

L'entrée () renvoie une énumération des valeurs dans la haquetable.
Keyset () renvoie une énumération des clés dans la haquetable.
L'entréeSet () renvoie les entrées (clé et valeur) sous forme d'un ensemble xxx pré>

ou à l'aide de génériques, auquel cas votre hachage est une chaîne HASHMAP P>

for( String key : hash.keySet() ) {
    String value = hash.get( key );
}

for( Map.Entry entry : hash.entrySet() ) {
    String key = entry.getKey();
    String value = entry.getValue();
}


1 commentaires

Je sais mais je veux les montrer ensemble par exemple system.out.println (clé + valeur);



9
votes

Vous avez la clé droite? Utilisez la clé pour obtenir la valeur de la carte et vous avez tous les mappages. Par exemple en Java avec chaîne en tant que type pour la clé: xxx

.


5 commentaires

C'est coûteux. La solution de Crowder est bien meilleure.


@akappa: Exactement de quelle manière cette approche est-elle plus coûteuse? Les deux solutions énoncient la collection de paires de clés.


Dans votre solution, vous devez rechercher chaque itération, tandis que dans la solution d'entrée de jeu, vous ne recherchez pas le tout.


Et vous savez pour un fait que la mise en œuvre de l'entrée () - la méthode ne fasse pas une recherche pour chaque paire de valeurs de clé? Pour autant que je puisse voir les deux approches, avoir une complexité O (n).


Si la carte est une HASHMAP, il est probable que les deux solutions soient O (n), mais si la carte est une eReemap, cette solution est O (n journal (n)), tandis que la version du jeu d'entrée est susceptible de toujours être juste o ( n).



18
votes

hashtable code> implémente mappe code>. map.entryset code> fonction retourne une collection ( définir code>) de map.Entry code> instances, qui ont getkey code> et getvalue Code> Méthodes.

SO: P>

for (Map.Entry<String,String> entry : yourTable.entrySet()) {
    System.out.println(entry.getKey() + " " + entry.getValue());
}


2 commentaires

Et même si vous avez besoin de synchronisation, utilisez un Concourshashmap.


@akappa: OOOOOOH, Nice. @OP: Référence: Java.sun.com.com / Javase / 6 / Docs / API / Java / Util / Concurrent / ...