一連の整数(別のArrayListのインデックスを表す)を含むArrayListがあります。
それぞれのユニークなペアを抽出する必要があります。
ArrayList = 1,4,5,7
私は欲しい:
1:4
1:5
1:7
4:5
4:7
5:7
これを達成するための最も簡単な方法は何ですか?
一意のフィルタリングのためにリストを変換しSet
て元に戻すList
for(int i = 0 ; i < list.size(); i ++){
for(int j = i+1 ; j < list.size(); j ++){
System.out.println(list.get(i) + "," + .list.get(j))
}
}
一方向の関係を持つグラフ構造を使用することは、この問題に適しているのでしょうか。
単純な順列よりもはるかに手間がかかりますが、おそらく実装するほうが興味深いでしょう。特にペアの数が多い場合。
最初の要素のすべての可能な選択肢をループします。それらのそれぞれについて、2番目の可能なすべての選択肢をループします。
重複を見つける部分はあなたに任せます(ヒント: a を使用してくださいSet
)。
2 つのインデックスを使用できます。1 つは最初の部分用、もう 1 つは 2 番目の部分用です。次に、最初のフォームの最初から最後の要素まで反復し、内側のループで最初の要素の 1 つ前から最後まで 2 番目のフォームを反復処理します。