千家信息网

Java怎么从list中删除符合条件的数据

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍了Java怎么从list中删除符合条件的数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。从list中删除符合条件的数
千家信息网最后更新 2025年01月31日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的新特性去删除。

  List list = 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 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安全错误 数据库的锁怎样保障安全 网络安全法第三章 软件开发公司财务主管工资 用什么软件开发go比较好 JDBC数据库开发的基本步骤 数据库的安全等级包括哪几层 工行软件开发合同 网络安全能进国家电网吗 统计数据需要用到数据库吗 华为网络技术培训心得体会 淘花源网络技术服务有限公司 邯郸市软件开发公司有哪些 广西师范大学网络安全考研 用友服务器连接失败 网络服务器设计 软件开发到客户所在地工作 软件开发工具有哪4个特征 铜仁市贵之乐网络技术 数据库有字段却是找不到该字段 在浦东前滩的网络安全支队 花千骨手游服务器查询 烟台小果网络技术有限公司曝光 火的深圳软件开发公司 数据库1t内存 数据库商店的字表 数据库管理系统有通信功能 mysql数据库事务 软件开发法律法规 江苏放心软件开发服务检测中心 天津曙光服务器虚拟化价格 成都智慧城市平台软件开发
0