需要解释此代码如何处理 Arraylist 值

2023-12-25

public static void mystery1(ArrayList<Integer> list) { 
for (int i = list.size() - 1; i > 0; i--) { 
    if (list.get(i) < list.get(i - 1)) { 
        int element = list.get(i); 
        list.remove(i); 
        list.add(0, element); 
    } 
} 
System.out.println(list);
}

我正在尝试用给定的组来解决此方法的输出ArrayList values。查看之后,我非常确定这段代码会重新定位列表前面的一对中较小的值。我使用了值的 ArrayList[2, 6, 1, 8]输入,结果是[1, 2, 6, 8],正如我所料。但对于[30, 20, 10, 60, 50, 40]它产生了[10, 30, 40, 20, 60, 50]当我期待的时候[40,50,10,20,30,60]。因此,任何人都可以向我解释一下这段代码实际上是如何处理的Arraylist?谢谢!


以下是逐步发生的情况:

  • 列表的初始状态:[30, 20, 10, 60, 50, 40]
  • 40
  • 60
  • 10
  • 30
  • 10

结果是:[10, 30, 40, 20, 60, 50]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要解释此代码如何处理 Arraylist 值 的相关文章

随机推荐