b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

遍历ArrayList容易碰到的问题!

电脑杂谈  发布时间:2016-04-24 22:02:37  来源:网络整理

你是否正在寻找关于遍历arraylist的内容?让我把最趣味的东西奉献给你:


今天无意之中在程序中需求遍历一个ArrayList集合,结果一直都发现好像有问题,调试了一下,发现程序并没有按照条件来进行移除操作,到网上搜了下,才发现遍历arraylist是要注意一个小问题的,问题大概如下:

问题发生的原因分析:
被遗漏的并不是原list的0号item,而是1号item
为什么呢?因为当你remove第i个item时,第 [i + 1, count)域中所有items的索引值皆减一(array是连续的,要满足只要有k ∈ [0, count)则array[k]必存在),那么当你在循环下一轮用i + 1为索引访问的即是原先list中索引为i + 2的那个item,由此可知,上例中0号被删除时,原1号变为新0 号,原2号变为新1号。,。。下一轮访问的1号就是先前的2号,而原始的1号则永远没有被访问到

明白了这个自然可以得出正确的迭代方法,正序时需注意索引和可能变化的终止条件,倒序时则简单些。
说白了就是因为removeat方法会改变count方法的返回值,就造成了不是每个元素都被遍历到。

以上就是关于遍历arraylist的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-2789-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 颜舒
        颜舒

        他不过就是能摆呼

      • 库达尔
        库达尔

        有点脑子都知道是不可能的

      热点图片
      拼命载入中...