Java怎么从list中删除符合条件的数据
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了Java怎么从list中删除符合条件的数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。从list中删除符合条件的数
千家信息网最后更新 2026年11月03日Java怎么从list中删除符合条件的数据
这篇文章主要介绍了Java怎么从list中删除符合条件的数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
从list中删除符合条件的数据
在Java语言使用中经常会遇到需要从list中去除一些数据,但是初学者经常会遇到如下的坑:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 4
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at Main.remove3(Main.java:44)
at Main.main(Main.java:18)
所以在此总结一下从list中删除数据的一些方法:
import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Main { public static void main(String[] args) { ArrayList strs = new ArrayList<>(); strs.add("1"); strs.add("32"); strs.add("3"); strs.add("4"); strs.add("5"); strs.add("36");// remove1(strs);// remove2(strs);// remove3(strs); remove4(strs); System.out.println("after"); printList(strs); } //使用iterator,这个是java和Android源码中经常使用到的一种方法,所以最为推荐 public static void remove1(List list) { Iterator sListIterator = list.iterator(); while (sListIterator.hasNext()) { String str = sListIterator.next(); if (str.contains("3")) { sListIterator.remove(); } } } //倒序删除,以防因为删除中间项导致数据下标变更,使得数据出错 public static void remove2(List list) { for (int i = list.size() - 1; i >= 0; i--) { if (list.get(i).contains("3")) { list.remove(i); } } } // 顺序删除,但是对下标和索引进行了处理 public static void remove3(List list) { for (int i = 0, len = list.size(); i < len; i++) { if (list.get(i).contains("3")) { list.remove(i); len--; i--; } } } // 在遍历过程中不直接操作原list public static void remove4(List list) { List temp = new ArrayList<>(); for (String str : list) { if (str.contains("3")) { temp.add(str); } } list.removeAll(temp); } public static void printList(List list) { for (String str : list) { System.out.println(str); } }} 如果还有其他好的方法再补充。
删除list中某个特定元素
当数据库查询出数据过后,发现有些数据不需要,所以这里要处理一下,加入循环list,根据判断条件去删除的话,就会出现异常。
所以这里用到了java8的新特性去删除。
Listlist = new ArrayList<>(); for (int i = 0; i < 50; i++){ UserFictitious userFictitious = new UserFictitious(); userFictitious.setUserFictitiousName(String.valueOf(i)); list.add(userFictitious); } list.removeIf(item -> item.getUserFictitiousName().equals("1")); System.out.println(list);
底层的源码是根据迭代器的特性去删除,java8只是封装进了removeIf,简化了代码。
default boolean removeIf(Predicate super E> filter) { Objects.requireNonNull(filter); boolean removed = false; final Iterator each = iterator(); while (each.hasNext()) { if (filter.test(each.next())) { each.remove(); removed = true; } } return removed; } 感谢你能够认真阅读完这篇文章,希望小编分享的"Java怎么从list中删除符合条件的数据"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
数据
条件
篇文章
方法
下标
常会
源码
特性
处理
代码
价值
倒序
元素
兴趣
初学者
只是
同时
底层
数据库
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑰夏咖啡
云南咖啡
互联网金融科技
华服互联网科技靠谱吗
博彦科技互联网金融
北京互联网科技公司
华宇互联网科技
伴你行互联网科技有限公司
多迪互联网科技有限公司
中正互联网科技招聘
互联网系的金融科技公司
互联网科技项目计划书材料类
岳阳华臻互联网科技有限公司
互联网与医疗科技
玉溪互联网科技怎么选
哈尔滨屹滨互联网科技有限公司
锡山区互联网智能科技产品供应
互联网与数字科技关系
恒生科技指数 中概互联网
银川新华互联网科技学校招聘
互联网医疗科技
银川新华互联网科技学校地址
速维有品互联网信息科技(苏州)有限公司
国大互联网教育科技有限公司工作
互联网数据科技专业
区块链结合互联网科技
科技互联网海报
上海京穆互联网科技有限公司
科技互联网经济论坛
科技发展第三阶段互联网时代