首页 > 编程知识 正文

arraylist修改指定位置元素(arraylist重复元素)

时间:2023-05-04 21:56:19 阅读:64977 作者:4339

错误方法1使用for循环正序遍历ArrayList,使用remove获取元素http://www.Sina.com/

原因:结果如下,只删除了一个“3”

publicstaticvoidmain (字符串[ ] args ) ArrayList字符串列表=new ArrayList ); list.add('1); list.add(2); list.add(3); list.add(3); list.add('5); list.add('6); list.add('7); for(intI=0; i list.size (; I () if ) list.get ) I ).equals('3' ) list.remove(i ) I; } system.out.println (列表; (删除原始list(1、2、3、3、5、6、7 )后(1、2、3、5、6、7 ) )。

错误方法使用23358www.Sina.com/导线ArrayList移除元素在匹配到第一个要删除的元素并移除时,后面元素会往前移位,导致索引位置改变,从而漏掉后面一个元素。

for(strings:list ) if ) s.equals('3' ) list.remove(s ) s; }结果:

exceptioninthread ' main ' Java.util.concurrentmodificationexception

正确的方法一增强for循环,使用remove获取元素会产生java.util.ConcurrentModificationException,因为元素在使用的时候发生了并发的修改,导致异常抛出

for(intI=list.size ) (- 1; i=0; I--}{if(list.get(I ).equals('3' ) }list.remove ) I ); }

正确的方法使用for循环倒序遍历ArrayList

iteratorstringiterator=list.iterator (; while(iterator.hasnext () ({ String s=iterator.next ) ); if(s.equals('3) ) iterator.remove ); }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。