码迷,mamicode.com
首页 > 编程语言 > 详细

java.util.List的remove()方法

时间:2014-11-27 19:01:27      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:style   ar   sp   java   for   on   数据   bs   代码   

public static void main(String[] args) {
    List<Integer> list = new ArrayList<Integer>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(3);
    list.add(4);
		
    for (int i=0; i<list.size(); i++) {
        if (list.get(i) == 3) {
            list.remove(i);//这样写不对,需要写成list.remove(i--) 
        }
    }
		
    System.out.println(list);
}

 

如果要遍历list进行过滤,比如过滤掉值为3的

本以为这代码再简单不过,可还是掉坑里了,上面的代码这样写的话,元素3是过滤不完的,只要list中有相邻2个相同的就过滤不完

List调用remove(index)方法后,
会移除index位置上的元素,index之后的元素就全部依次左移,即索引依次-1

要保证能操作所有的数据,需要把index-1,
否则原来索引为index+1的元素就无法遍历到
(因为原来索引为index+1的数据,在执行移除操作后,索引变成index了,如果没有index-1的操作,就不会遍历到该元素,而是遍历该元素的下一个元素)。

java.util.List的remove()方法

标签:style   ar   sp   java   for   on   数据   bs   代码   

原文地址:http://my.oschina.net/lhplj/blog/349474

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!