現在、可変サイズの ArrayList 内の各ファイルを比較する必要があるプログラムを作成しています。現在、私がこれを行っている方法は、ネストされたコード ループを使用することです。
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)));
}
}
ネストされたループの必要性についていくつかの異なる意見を読みましたが、より効率的な代替手段があるかどうか疑問に思っていました。
一見すると、どちらの方法でも各比較を行う必要があるため、パフォーマンスはかなり安定しているはずですが、これを行うためのよりクリーンな方法があるとある程度確信しています。ポインタはありますか?
編集:: わかりやすくするために、これは関数の一部にすぎません。ファイルは比較され、長さに基づいてバケットに入れられました。セットのマップを調べて、長さが 1 より大きいバケットを見つけた後、これを実行します。つまり、これらはすべて同じサイズのファイルです。バイトに到達する前にチェックサムの比較も行いますが、今はループをクリーンアップしようとしています。
また、このサイトは迅速に対応します。みんなありがとう。
EDIT2:: 申し訳ありませんが、さらに明確にするために: ファイル処理部分については、私が十分に把握していると思います-最初に、長さ、次にチェックサム、次にバイトで比較してソートします-問題は、適切にすべてを比較する必要があると仮定して、ArrayList 内のすべてのファイルを効率的に比較する必要があることに対処します。ネストされたループがこれに十分である場合、それはクールです。これが慣習的に適切な方法であることを確認したかっただけです。