J'ai deux listes A1, A2. Chaque élément de A1 serait la clé et chaque élément de A2 la valeur correspondante. Donc la solution que j'ai trouvé est en boucle sur A1 (A1 et A2 ont la même taille) rendant hashmap.add (A1 [i], A2 [i]) mais existe-t-il un moyen d'envoyer directement les paires de valeurs clés en deux ensembles? Je veux éviter les boucles ça va ralentir mon code..Merci à l'avance!HashMap: obtenir une liste de clés ou une valeur
Répondre
Vous avez une liste de paires de valeurs clés. La seule façon de prendre cette liste et de l'ajouter dans le Hashmap
est d'itérer la liste. Si vous avez stocké vos paires de valeurs clés dans un autre type d'objet Map
, vous pouvez utiliser le constructeur Hashmap
HashMap(Map<? extends K,? extends V> m)
mais pas avec votre ArrayList
. Ne craignez pas l'itération dans votre code si c'est la bonne approche.
Rappelez-vous Polya: Trouver une solution, puis voir si vous pouvez trouver une meilleure solution.
"Je veux éviter les boucles cela va ralentir mon code." Chaque fois que le code fait quoi que ce soit, il ralentit votre code. La clé est d'éviter de faire des choses que vous n'avez pas besoin de faire. Quelque chose doit parcourir vos listes.
Peut-être que vous seriez en mesure d'éviter l'itération pour insérer les données dans des tableaux le faisant directement dans le hashmap.
Bonne chance!
oui j'ai enfin trouvé un moyen de faire que mon code me le permette! :) – user235693
Si vous êtes en mesure de contrôler l'ordre dans lequel vous insérez les éléments dans les tableaux, et que vous pouvez le faire dans l'ordre de tri, vous n'avez peut-être pas besoin de HashMap
après tout. Alors que la recherche hachée affichera temps constant amorti, vous pouvez rechercher O (log n) fois avec binary search sur une séquence d'accès aléatoire triée comme un tableau. La fonction Arrays#binarySearch()
vous permet de déterminer quel élément, le cas échéant, correspond à votre clé dans le premier tableau et, étant donné cette position, vous pouvez accéder à la valeur correspondante dans le tableau parallèle.
Cette approche est la plus avantageuse lorsque vous ne compilez les données qu'une seule fois et que vous recherchez fréquemment des entrées, et que vous n'effectuez aucune addition ou suppression ultérieure d'entrées.
Vous pourriez même envelopper dans votre propre implémentation de Map, qui pourrait avoir un constructeur de 2 arguments de liste :) – extraneon
Oui, avec la mise en garde que vous voudriez probablement lancer 'UnsupportedOperationException' pour toutes les méthodes de mutation, y compris celles exposé par les itérateurs. – seh
Salut, c'est le problème, je ne peux pas contrôler l'ordre dans lequel j'insère les éléments dans les tableaux. – user235693
- 1. Carte: Comment obtenir toutes les clés associées à une valeur?
- 2. Rechercher une valeur pour une clé donnée dans une HashMap
- 3. Quelle est l'utilité d'ajouter une clé ou une valeur nulle à une HashMap en Java?
- 4. Obtenir une valeur à partir d'une liste
- 5. Obtenir une énumération (pour les clés) d'une carte (HashMap) en Java?
- 6. Plusieurs clés pour une valeur de table?
- 7. remplacer une valeur particulière dans une chaîne de valeurs-clés
- 8. Réglage hashmap dans une boucle
- 9. itération sur une HashMap de HashMaps en Java (ou Scala)
- 10. comment copier une liste dans une nouvelle liste, ou récupérer la liste par valeur dans C#
- 11. hashmap et la liste comparative
- 12. JasperReports: Déclarer une variable comme HashMap
- 13. Utilisation de Hashmap pour plusieurs valeurs de clés et pourquoi?
- 14. plusieurs clés pour une valeur en yaml
- 15. Tableau, Dictionnaire ou Liste dans une session?
- 16. Ajouter des clés à une liste ou à une collection - est-il utile de hacher la clé avant de l'ajouter?
- 17. Convertir une chaîne JSON en objet Java ou HashMap
- 18. Obtenir une valeur de NSXMLDocument
- 19. Nhibernate - Obtenir une liste
- 20. Comment nettoyer et améliorer une liste de mots-clés?
- 21. Obtenir la valeur du champ sélectionné dans une liste déroulante
- 22. Java HashMap détecter une collision
- 23. comment sélectionner une valeur dans une liste?
- 24. Comment initialiser un dict avec des clés d'une liste et une valeur vide en Python?
- 25. Ordre HashMap alphabétiquement par valeur
- 26. Est-ce que HashMap fournit une correspondance biunivoque?
- 27. PHP méthode intégrée pour obtenir des valeurs de tableau donné une liste de clés
- 28. Trier une liste multidimensionnelle par un nombre variable de clés
- 29. Comment obtenir une liste de contacts msn?
- 30. HashMap avec ~ 100 millions de clés, encore temps constant?
Et bien sûr, ce constructeur devrait simplement parcourir la carte des paramètres. –
Salut Dougman, merci pour la réponse et petite phrase! – user235693
michael bon détail que vous venez de me donner! – user235693