簡単に言えばreverse()
、配列リストを介して 1 次元を超えて伝播することはありません。
次のように(単純化のためにピクセルではない)を作成したとしましょうArrayList<ArrayList<Integer>>
(これは有効なJavaではなく、単なる概要です):
ArrayList //called outer
ArrayList //called inner-1
Integer(11)
Integer(12)
ArrayList //called inner-2
Integer(21)
Integer(22)
あなたはそれCollections.reverse()
からアウターArrayList
。
あなたは得るでしょう:
ArrayList //called outer
ArrayList //called inner-2
Integer(21)
Integer(22)
ArrayList //called inner-1
Integer(11)
Integer(12)
は、に が含まれreverse()
ていることを考慮しません。それらを通常のオブジェクトとして扱い、その内容に触れることなく順序を逆にします。そうしないと、未定義で追跡が困難な動作が発生し、あらゆる種類の豚が飛んでしまいます。ArrayList
ArrayLists
すべてのインナーを裏返したい場合は、次の簡単なヒントを使用してください。
for(ArrayList innerList: copy){ //named as per your existing code in the original post
Collections.reverse(innerList);
}
この場合、ブラケットは絶対に必要ではありませんでした。