Java 在二维ArrayList中反转外部ArrayList

Java 在二维ArrayList中反转外部ArrayList,java,Java,在java中,如果使用Collections.reversesomeArrayList反转2d ArrayList,会发生什么? 只有外部维度会反转吗 这是我的密码: 简单地说,reverse不会通过数组列表传播到一维之外 假设您创建了一个ArrayList而非pixel以简化,如下所示这不是有效的java,只是一个概述: ArrayList //called outer ArrayList //called inner-1 Integer(11) Int

在java中,如果使用Collections.reversesomeArrayList反转2d ArrayList,会发生什么? 只有外部维度会反转吗

这是我的密码:

简单地说,reverse不会通过数组列表传播到一维之外

假设您创建了一个ArrayList而非pixel以简化,如下所示这不是有效的java,只是一个概述:

ArrayList //called outer
    ArrayList //called inner-1
        Integer(11)
        Integer(12)
    ArrayList //called inner-2
        Integer(21)
        Integer(22)
然后创建集合。反转外部ArrayList

您将获得:

ArrayList //called outer
    ArrayList //called inner-2
        Integer(21)
        Integer(22)
    ArrayList //called inner-1
        Integer(11)
        Integer(12)
相反,不考虑ArrayList包含ArrayList。它将它们视为普通对象,并在不接触其内容的情况下反转它们的顺序。否则,将导致未定义、难以跟踪的行为和各种各样的猪飞行

如果要翻转所有内部,请使用以下快速提示:

for(ArrayList innerList: copy){ //named as per your existing code in the original post
    Collections.reverse(innerList);
}

在这种情况下,括号不是绝对必要的。

是的,ArrayList的内部元素实例将不会反转。如果您想在结构的深处递归地反转所有内容,则必须自己实现。

欢迎使用SO。你应该坐飞机。你试过自己运行代码并看到了吗?我试过运行它,但无法确定它是否在做它应该做的事情。我不擅长调试代码。你用什么作为调试器?IDE还是独立调试器?如果您在2D arraylist中填充了一些可以放置原始位置信息的内容(例如stringI),那么调试可能也会更简单。我正在使用Eclipse,它有太多的提示,对于初学者来说是难以承受的。使用字符串数据听起来确实是个好主意。我知道有一种方法可以在Eclipse中测试代码片段,但我记不起它叫什么了。我想可能是剪贴簿。您知道Eclipse中有这样一个工具吗?谢谢,这正是我想要它工作的方式。我试图从2d阵列创建扫描线,而不改变原始阵列的值。我找不到任何例子来证实这一点。
for(ArrayList innerList: copy){ //named as per your existing code in the original post
    Collections.reverse(innerList);
}