关于删除List中的某些element的方法
来源:互联网 发布:中国人口数据分析 编辑:程序博客网 时间:2024/06/06 01:26
在开发中经常会遇到需要删除List中的某些特定的element的地方,这时是不能直接遍历+remove的。
以这样一个List为例: List<String> ,删除其中为空的String。
1. 遍历+remove (这种方法是行不通的)
/** * Remove empty string from a list. * * @param srcList * @return */ private static void removeElementFromList3(List<String> srcList) { if (srcList != null) { for (String str : srcList) { if (str.length() == 0) { srcList.remove(str); } } } }
运行会报错:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at HelloWorld.removeElementFromList3(HelloWorld.java:87)
at HelloWorld.main(HelloWorld.java:28)
2.可行的方法一: 对原来的List先copy,在遍历+remove
/** * Remove empty string from a list. * * @param srcList * @return */ private static void removeElementFromList1(List<String> srcList) { if (srcList != null) { List<String> copyList = new ArrayList<String>(); copyList.addAll(srcList); for (String str : copyList) { if (str.length() == 0) { srcList.remove(str); } } } }
3. 可行的方法二: 采用 Iterator
/** * Remove empty string from a list. * * @param srcList * @return */ private static void removeElementFromList2(List<String> srcList) { if (srcList != null) { Iterator<String> it = srcList.iterator(); while (it.hasNext()) { if (it.next().length() == 0) { it.remove(); } } } }
0 0
- 关于删除List中的某些element的方法
- Java中删除List中的某些数据的方法
- 删除NSString中某些字符的方法
- 删除list中某些元素
- [lintcode]Remove Linked List Element 删除链表中的元素
- 关于数组某些方法的学习
- 数组、List中,删除容器中的某些元素时使用倒叙删除
- 删除页面中的Element
- 【摘取】敏捷测试,用户故事:一个关于“删除购物车中的某些商品”的故事评估的实例
- 关于list删除的问题
- 删除nsmutablearray中的某些元素
- iOS开发 -- 字符串删除某些元素的方法
- 关于Element与Document的getElementsByTagName方法
- 关于java中Object类的某些方法的总结
- Java如何将List集合中的某些数据放到List集合的首位
- 安卓删除List里面某些一样的数据为何使用的是迭代器而不是for循环
- 关于js中dom对象不支持某些方法的处理
- 遍历list时删除某些情况下的元素,使用迭代器Iterator
- 杨辉三角
- 如何捕捉推荐系统中随时间变化的动态信息
- java环境变量
- Halcon基础教程1.3学习笔记
- 使用JDBC时Class.forName()的作用
- 关于删除List中的某些element的方法
- ASP.NET输入文本框自动提示功能
- 使用JToolBa创建工具条---摘自《JAVA疯狂讲义》
- 红薯
- 希尔排序
- 2013 北京云基地白皮书
- ios本地化
- 面试的时候要根据不同的面对人员讲不同的话
- 关于PHP的环境配置问题,最新PHP环境配置方法