À l'aide de Java, comment puis-je comparer chaque entrée dans la table de hachage pour chaque autre entrée dans la même table de hachage sans dupliquer les comparaisons?

Je suis actuellement à l'aide de 2 boucles for pour comparer toutes les entrées, mais je suis en double comparaisons. Parce que HashMaps ne sont pas commandé, je ne peux pas comprendre comment éliminer les comparaisons qui ont déjà été faites. Par exemple, j'ai quelque chose comme:

    for(Entry<String, String> e1: map.entrySet())
    { 
        for(Entry<String, String> e2: map.entrySet())
        {    
          if (e1.getKey() != e2.getKey())
            {
           //compare e1.getValue() to e2.getValue() 
            }
        }
     }

Le problème, c'est que la première entrée sera comparée à la deuxième, puis la troisième et ainsi de suite. Mais alors que le second sera de nouveau par rapport à la première entrée et ainsi de suite. Et puis la troisième entrée est comparée à la première, puis la seconde, puis la 4ème entrée, etc. Est-il une meilleure façon de parcourir HashMaps pour éviter de faire un double des comparaisons?

Informations supplémentaires:

Pour être plus précis et nous espérons répondre à vos questions, la table de hachage que j'ai est de stocker les noms de fichiers (les touches) et le contenu du fichier (les valeurs) - seulement les fichiers texte. La table de hachage a été rempli en traversant un répertoire qui contient les fichiers que je veux comparer. Alors ce que je fais est en cours d'exécution des paires de fichiers par le biais de certains algorithmes pour déterminer la similarité entre chaque paire de fichiers. Je n'ai pas besoin de comparer le fichier 1 fichier 2, puis le fichier 2 fichier 1 encore une fois, comme je l'ai seulement besoin de 2 fichiers à comparer la fois. Mais je n'ai besoin de tous les fichiers à comparer à tous les autres fichier une fois. Je suis tout nouveau à travailler avec HashMaps. agim la réponse ci-dessous peut travailler pour mes fins. Mais je vais aussi essayer d'envelopper mon cerveau autour de Evgeniy Dorofeev et Peter Lawrey les solutions ci-dessous. J'espère que cela vous aide à comprendre les choses mieux.

Êtes-vous essayer de trouver si une valeur est répétée dans la carte? Si oui, avez-vous besoin de savoir ce que les touches de la carte à un double de la valeur?
Merci beaucoup tout le monde. J'ai ajouté un edit pour aider à expliquer plus et nous espérons répondre à vos questions.

OriginalL'auteur Lani1234 | 2013-01-07