在Java中,有些场景需要遍历集合中的元素,然后根据条件进行删除元素的操作。如果使用传统的for循环遍历方式来删除元素,很可能出错或发生意想不到的问题。推荐使用迭代器iterator完成 1. 推荐使用迭代器方式****删除 阿里
在Java中,有些场景需要遍历集合中的元素,然后根据条件进行删除元素的操作。如果使用传统的for循环遍历方式来删除元素,很可能出错或发生意想不到的问题。推荐使用迭代器iterator完成
阿里规约:【强制】不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁。
@Test void testList2(){ List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String item = iterator.next(); if ("2".equals(item)) { iterator.remove(); } } System.out.println(list); }
因为删除元素后,数组元素发生前移,后续遍历可能导致
- 数组访问越界错误:元素减少,但是size()没有变,(可改成for里使用list.size())
- 有元素没遍历到
@Test void testList(){ List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); for (String item : list) { if ("2".equals(item)) { list.remove(item); } } System.out.println(list); } //或 @Test void testList2(){ List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); int size = list.size(); for (int i=0; i<size; i++) { if ("2".equals(list.gei(i))) { list.remove(i); } } System.out.println(list); }
@Test void testList3(){ List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); for (int i=list.size()-1; i>=0; i--) { if ("2".equals(list.gei(i))) { list.remove(i); } } System.out.println(list); }
来源地址:https://blog.csdn.net/zsx1713366249/article/details/131170630
--结束END--
本文标题: 【笔记】Java中for循环遍历删除操作
本文链接: https://www.lsjlt.com/news/379266.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0