java中list集合删除其中的某一个元素

方法一:Iterator 去除

//定义list
List<User> list = new ArrayList<>();
User user1 = new User();
User user2 = new User();
user1.serName("111");
user2.serName("222");
list.add(user1);
list.add(user2);
//删除集合中某一元素值
Iterator<User> iterator = list.iterator();
while (iterator.hasNext()){
User next = iterator.next();
String name = next.getName();
if (name.equals("222")){
iterator.remove();
}
}

缺点:虽然也能去除 但是列表改造成 Iterator 类型的了 ,还要转换。
方法二: stream 去除

//定义list
List<User> list = new ArrayList<>();
User user1 = new User();
User user2 = new User();
user1.serName("111");
user2.serName("222");
list.add(user1);
list.add(user2);
//删除集合中某一元素值
list.stream().findFirst().map(vo -> {
if (vo.getName().equals("222")){
list.remove(vo);
}
return vo;
});

优点: 没有改变list格式并且更简洁。
缺点:remove的时候会再次遍历整个list来找出 这个元素,性能会有一定的损耗。
方法三: stream +索引 去除

//定义list
List<User> list = new ArrayList<>();
User user1 = new User();
User user2 = new User();
user1.serName("111");
user2.serName("222");
list.add(user1);
list.add(user2);
//删除集合中某一元素值
IntStream.range(0,list.size()).filter(i->
list.get(i).getName().equals("222")).
boxed().findFirst().map(i->list.remove((int)i));

其中boxed为装箱操作
更简洁,高效。

posted @   劍客  阅读(2003)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示