我是靠谱客的博主 生动酸奶,这篇文章主要介绍ArrayList删除某元素的几种方法,现在分享给大家,希望可以做个参考。

ArrayList删除某元素的几种方法

环境:
开发工具:IDEA
jdk:1.8

一、正序遍历:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
List<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
13
List<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
14
List<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
4
foreach方式遍历元素的时候,是生成iterator,然后使用iterator遍历。在生成iterator的时候,会保存一个expectedModCount参数,这个是生成iterator的时候List中修改元素的次数。 如果你在遍历过程中删除元素,List中modCount就会变化,如果这个modCount和exceptedModCount不一致, 就会抛出异常。这个是为了安全的考虑。如果使用iterator遍历过程中, 使用List修改了元素,可能会出现不正常的现象。如果使用iterator的remove方法则会正常,因为iterator的remove方法会在内部调用List的remove方法,但是会修改excepedModCount的值,因此会正常运行。

最后

以上就是生动酸奶最近收集整理的关于ArrayList删除某元素的几种方法的全部内容,更多相关ArrayList删除某元素内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部