ArrayList删除某元素的几种方法
环境:
开发工具:IDEA
jdk:1.8
一、正序遍历:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13List<Integer> list = new ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); for (int i = 0; i < list.size(); i++) { if(list.get(i)==2){ list.remove(i); } } System.out.println("---------"+list.toString());
结果:
复制代码
1
2---------[1, 3, 4]
二、倒序遍历
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13List<Integer> list = new ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); for (int i = list.size()-1; i >=0; i--) { if(list.get(i)==2){ list.remove(i); } } System.out.println("---------"+list.toString());
结果:
复制代码
1
2---------[1, 3, 4]
三、iterator遍历器
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14List<Integer> list = new ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); Iterator<Integer> iterator = list.iterator(); while (iterator.hasNext()){ if (iterator.next()==2) { iterator.remove(); } } System.out.println("---------"+list.toString());
结果:
复制代码
1
2---------[1, 3, 4]
附:
不能使用foreach去遍历删除,原因:
复制代码
1
2
3
4foreach方式遍历元素的时候,是生成iterator,然后使用iterator遍历。在生成iterator的时候,会保存一个expectedModCount参数,这个是生成iterator的时候List中修改元素的次数。 如果你在遍历过程中删除元素,List中modCount就会变化,如果这个modCount和exceptedModCount不一致, 就会抛出异常。这个是为了安全的考虑。如果使用iterator遍历过程中, 使用List修改了元素,可能会出现不正常的现象。如果使用iterator的remove方法则会正常,因为iterator的remove方法会在内部调用List的remove方法,但是会修改excepedModCount的值,因此会正常运行。
最后
以上就是生动酸奶最近收集整理的关于ArrayList删除某元素的几种方法的全部内容,更多相关ArrayList删除某元素内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复