List 集合remove问题

网友投稿 230 2022-09-26

List 集合remove问题

java的list集合中,使用remove删除元素:

方法一:

static List list3 = new ArrayList();static { list3.add(1); list3.add(2); list3.add(2); list3.add(2); list3.add(2);}private static void remove(List list3) { for (int i=0;i

打印结果:1,2,2

造成问题的原因是,在使用remove删除list中元素时,list集合的size会发生变化,所以不能达到预期。

方法二:

private static void remove(List list3) { for(int i = 0 , len= list3.size();i

打印结果:1

由于动态的计算list大小,所以可以得到正确答案

方法三:

Iterator sListIterator = list.iterator(); while(sListIterator.hasNext()){ String e = sListIterator.next(); if(e.equals("3")){ sListIterator.remove(); } }

List接口内部实现了Iterator接口,提供开发者一个iterator()得到当前list对象的一个iterator对象。

注:对于并发情况,更因该使用第三种方法(迭代器)。否则一定会出现并发问题。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:焱融科技加入多家行业协会与产业联盟,加速产业互联生态跃迁
下一篇:长租公寓为何频暴雷?资金监管加速行业洗牌?业内代表这么说!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~