List 集合 使用 remove 踩得坑详解编程语言
2023-06-13 09:11:47 时间
不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁。
Iterator iterator = list.iterator();
while(iterator.hasNext())
{
String item = iterator.next();
if (删除元素的条件) {
iterator.remove();
}
}
错误写法例子:
List String list = new ArrayList String
list.add("1");
list.add("2");
System.out.println("移除前:" + list);
for (String item : list) {
if ("1".equals(item)) {
list.remove(item);
}
}
System.out.println("移除后:" + list);
运行结果: 移除前:[1, 2] 移除后:[2]
将上图中的 "1" 修改为"2" ,结果会出乎你的意料。
List String list = new ArrayList String
list.add("1");
list.add("2");
System.out.println("移除前:" + list);
for (String item : list) {
if ("2".equals(item)) {
list.remove(item);
}
}
System.out.println("移除后:" + list);
如下图:
结果是不是出乎大家的意料,所以如果集合中进行remove、add 操作,请使用正确的例子方式。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/17429.html
cjava相关文章
- 使用 Java8的 stream对list数据去重,使用filter()过滤列表,list转map「建议收藏」
- Java list转为object_List集合转JSONObject
- 利用HashSet给list去重[通俗易懂]
- 将JSON数组转化为List集合[通俗易懂]
- C#将枚举转换为List集合
- 数组使用arrays.aslist转化为集合_int数组转list集合
- java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换
- python模块list 转json字符串_python 列表 字典转json[通俗易懂]
- List集合转换成Json字符串
- .NET性能优化-快速遍历List集合
- Java8中将list转换为用逗号隔开的字符串的几种方法
- Java集合中List,Set以及Map(三者的区别,什么时候用Set,Connection接口)
- 【Flutter】Dart 数据类型 List 集合类型 ( 定义集合 | 初始化 | 泛型用法 | 初始化后添加元素 | 集合生成函数 | 集合遍历 )
- 实现java 中 list集合中有几十万条数据,每100条为一组取出详解编程语言
- Java集合类: Set、List、Map、Queue使用场景梳理详解编程语言
- EL表达式获取List集合长度详解编程语言
- 用Java集合中的Collections.sort方法对list排序的两种方法详解编程语言
- Java中对List集合的常用操作详解编程语言
- Java遍历List集合的三种方法详解编程语言
- 创建list ALV tree[RS_TREE_LIST_DISPLAY]详解编程语言
- Hibernate Query接口 list方法:返回查询结果的List集合
- 利用Redis构建新的List存储方式(redis存储list)
- Redis如何清空List:技巧分享(redis清空list)
- 以List形式存储至Redis中(往redis里存list)
- 使用Redis轻松获取List数据(获取redis中list)
- Redis中List与Set的应用(redis集合与list)