Android开发遇到的坑(1):Java中List的安全删除问题

      在项目的开发过程中,一定少不了的是对Java集合中的List接触。项目中对List的删掉也是一种常见的操作,看上这个操作也没什么好说的样子,但是在项目开发中也是最容易出错的地方,特别是对于新手。有时候,我们在开发的时候不注意也会踩进这个坑。

     下面的代码看上去好像问题,但是运行报IndexOutOfBoundsException。

image

     看控制台输出的打印出来的信息,我们知道List的Size发生了变化,但是Index的没有改变,当Index起出Size的大小时,就报IndexOutOfBoundsException。

    下面这种情况还坑,比较难一眼看出来,因为它没有报IndexOutOfBoundsException异常,删除后不是你想要的List结果。

image

运行程序没有报错,但是输出的结果不是想要的,是不是很坑。分析一下原因:List中的数据的位置发生了变化,如下图的右边为删除后的List数据的位置.

image

对于上面的坑,总的来说就是List的发生了变化,但是判断条件没有做出调整,所以导致以上的问题。

那么,可以安全的删除List的方法可能有好多, 但是当我遇到List的删除的时候,我用以下这种就可以了。

image

这种方法是从列表的后面开始删掉。

网上可能还有比较多的方法来安全的删除,但是这种在我开发项目时候遇到List的删掉已经够用了!

posted @ 2015-11-04 16:22  钟汉文  阅读(3401)  评论(0编辑  收藏  举报