需要有关此代码如何处理Arraylist值的说明

强尼
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 <50?是的。因此,删除40,并将其作为列表的第一个元素:[40,30,20,10,60,50]
  • 60 <10?不,请勿触摸:[40,30,20,10,60,50]
  • 是10 <20吗?是的。因此,删除10,并将其作为列表的第一个元素:[10,40,30,20,60,50]
  • 30 <40?是的。因此,删除30,并将其作为列表的第一个元素:[30,10,40,20,60,50]
  • 是10 <30吗?是的。因此,删除10,并将其作为列表的第一个元素:[10,30,40,20,60,50]。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章