arraylist删除所有元素,在使用arraylist集合时,删除元素的方法

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: