入力ファイルに基づいてチェーンを構築するために使用している整数のリストのリストがあります。入力はペアを指定し (例: "3, 1" は、アプリケーションで 1 が 3 を置き換えることを示します)、ペアには重複があります (例: "3, 1" と "1, 4" は、1 が 3 を置き換え、4 が 4 を置き換えることを意味します)。 1 であるため、最終的には 4 が 3 に置き換わります)。
すべてのペアを最終的なチェーンに縮小するために、すべてのペアのリストを含むリストを作成し、リスト内の重複するエントリを見つけて、必要に応じてチェーンに追加し、追加されたペアを削除します。別。これは私がこれをやろうとしている方法ですが、失敗はイテレータ参照を2倍にすることにあることを知っています:
for (ArrayList<Integer> outerChain : chains) {
for (ArrayList<Integer> innerChain : chains) {
if (outerChain.get(0).equals(innerChain.get(innerChain.size() - 1))) {
outerChain.remove(0);
innerChain.addAll(outerChain);
chains.remove(outerChain);
break;
}
}
}
この操作からの入力/目的の出力の例として:
{<1,3>,<2,7>,<7,9>,<8,12>,<9,1>,<6,8>}
入力ペアに対応する個々のリストである場合、出力は次のようになります。
{<2,7,9,1,3>,<6,8,12>}
このようなイテレータをネストして、どちらかを削除または更新するときに各イテレータ内の参照が更新されるようにする方法はありますか?
助けてくれてありがとう!