arraylist删除所有元素,在使用arraylist集合时,删除元素的方法
在项目开发中,我们可能经常需要动态删除ArrayList中的一些元素。本文将解释如何删除Java集合类的ArrayList循环中的特定元素。
在项目开发中,我们可能经常需要动态删除ArrayList中的一些元素。
一个错误的方法:
[java]view plaincopyfor(inti=0,len=list . size();I I){ if(list . get(I)==XXX){ list . remove(I);}}
上述方法将引发以下异常:
[Java]查看plaincopyExceptioninthread main Java . lang . indexoutofboundsexception:Index:3,Size:3 at Java . util . ArrayList . range check(unknown source)at Java . util . ArrayList . get(unknown source)at list demo . main(list demo . Java:20)
因为你删除了元素,但是没有改变迭代的下标,所以当迭代到最后一个的时候会抛出异常。
上述程序可以改进如下:
上面的代码是正确的。
下面我们来介绍另一个方案:
list接口实现了iterator接口,它为开发人员提供了一个iterator()来获取当前List对象的Iterator对象。
[Java]view plaincopy iterator String sListIterator=list . iterator();while(slistiterator . has next()){ string=slistiterator . next();if(e . equals( 3 ){ slistiterator . remove();}}
以上也是正确的,推荐第二种方案。
两种方案的实现原理差别很大,但第二种只是用jdk封装的。看ArrayList源代码,你会发现很多方法都是基于迭代器接口在内部实现的,所以推荐第二种方案。
致:http://loonhxl.sinaapp.com/
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。