bguiz,
Je pense (je ne sais pas) que l'itération de la EntrySet (variante 2) est légèrement plus efficace, tout simplement parce qu'il n'a pas de hachage de chaque clé pour obtenir sa valeur... cela dit, le calcul de la valeur de hachage est un O(1) opération par entrée, et donc nous ne sommes qu'à parler O(n) sur l'ensemble de l' HashMap
... mais notez que tout cela s'applique à l' HashMap
seulement... d'autres implémentations de Map
peuvent être TRÈS différentes caractéristiques de performance.
Je ne pense que vous auriez du être "poussant" à fait de l'AVIS de l'écart de performance. Si vous êtes intéressé, alors pourquoi ne pas l'installation d'un test à la fois itération techniques?
Si vous n'avez pas un RÉEL, a rapporté problème de performances, alors vous êtes vraiment se soucier de ne pas très bien... Un peu de tops d'horloge ici et il n'y aura pas d'impact sur la facilité d'utilisation de votre programme.
Je crois que beaucoup, beaucoup d'autres aspects du code sont généralement plus importants que simplement la performance. Bien sûr, certains de ces blocs sont "critique pour les performances", et ceci est connu AVANT, il est même écrit, laissez-le seul de la performance à l'épreuve..., mais ces cas sont assez rares. Comme approche générale, il est préférable de se concentrer sur l'écriture complète, correcte, flexible, testable, réutilisable, lisible, maintenable code... de la performance PEUT être construit un peu plus tard, en tant que de besoin.
Version 0 devrait être aussi SIMPLE QUE POSSIBLE, sans aucune "optimisations".