Alternative à la Boucle Imbriquée Pour la Comparaison

Je suis en train d'écrire un programme qui a besoin de comparer chaque fichier dans une liste de tableaux de taille variable. Maintenant, la façon dont je le fais c'est par le biais d'un code imbriqué boucle:

         if(tempList.size()>1){
            for(int i=0;i<=tempList.size()-1;i++)
                //Nested loops.  I should feel dirty?
                for(int j=i+1;j<=tempList.size()-1;j++){
                    //*Gets sorted.
                    System.out.println(checkBytes(tempList.get(i), tempList.get(j)));
                }
            }

J'ai lu quelques divergences d'opinion sur la nécessité de boucles imbriquées, et je me demandais si quelqu'un avait une alternative plus efficace.

En un clin d'œil, chaque comparaison est besoin de le faire, de toute façon, de sorte que la performance devrait être assez stable, mais je suis moyennement convaincu, il y a une manière plus propre de le faire. Les pointeurs?

EDIT:: Ce n'est qu'une partie de la fonction, pour plus de clarté. Les fichiers ont été comparés et mis dans des seaux en fonction de la longueur - après la carte de l'ensemble, et de trouver un seau qui est supérieure à une longueur, il s'exécute. Donc, - ce sont tous les fichiers de la même taille. Je vais faire une comparaison de la somme de contrôle avant d'en arriver à d'octets en tant que bien, mais pour l'instant je suis juste en train de nettoyer la boucle.

Aussi, ah la vache, ce site répond rapidement. Merci, les gars.

EDIT2:: Désolé, pour plus de précisions: La gestion des fichiers de la partie j'ai un décent comprendre, je pense - tout d'abord, j'ai comparer et les trier par taille, par la somme de contrôle, puis en octets - le problème que j'ai est de savoir comment traiter correctement avoir besoin de comparer tous les fichiers dans la liste de tableaux efficacement, en supposant qu'ils ont tous besoin d'être comparés. Si une boucle imbriquée est suffisant pour ce faire, c'est cool, je voulais juste vérifier que c'était une méthode appropriée, la convention-sage.

Je voudrais garder de cette façon. Je ne vois pas le moyen le plus propre de faire les n(n-1)/2 comparaisons.
Il semble que vous peut-être de chaque comparaison, deux fois, depuis checkBytes(a,b) est la même que checkBytes(b,a).
Il n'y a vraiment rien de mal avec l'aide de boucles imbriquées, si vous avez vraiment besoin d'eux. La comparaison de paires de arraylist devrait certainement être un de ces cas. Votre code ne peut pas vraiment être amélioré, sans peut-être davantage de connaissance de l'checkBytes fonction.
Non, parce qu'il a la borne inférieure de l'intérieur de la boucle de droite.
@Jack et @Donal Boursiers réponses déjà l'adresse de "EDIT2" partie de votre question. Ce que vous ne comprenez pas?

OriginalL'auteur KGVT | 2010-04-23