返回顶部
首页 > 资讯 > 后端开发 > Python >详解Java中List的正确的删除方法
  • 170
分享到

详解Java中List的正确的删除方法

2024-04-02 19:04:59 170人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录简介实例正确方法法1:for的下标倒序遍历法2: list.stream().filter().collect()法3: iterator迭代器错误方法法1:for(xxx :

简介

本文介绍Java的List的正确的删除方法。

实例

需求:有如下初始数据,将list中的所有数据为"b"的元素删除掉。即:填充removeB()方法

package com.example.a;
 
import java.util.ArrayList;
import java.util.List;
 
public class Demo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");
 
        removeB(list);
    }
 
    private static void removeB(List<String> list) {
        // 待填充
    }
}

正确方法

法1:for的下标倒序遍历

private static void removeB(List<String> list) {
    for (int i = list.size() - 1; i >= 0; i--) {
        if ("b".equals(list.get(i))) {
            list.remove(i);
        }
    }
    System.out.println(list);
}

结果

[a, c, d]

法2: list.stream().filter().collect()

private static void removeB(List<String> list) {
    List<String> newList = list.stream()
            .filter(e -> !"b".equals(e))
            .collect(Collectors.toList());
    System.out.println(newList);
}

结果

[a, c, d]

法3: iterator迭代器

private static void removeB(List<String> list) {
    Iterator<String> it = list.iterator();
    while (it.hasNext()) {
        String s = it.next();
        if ("b".equals(s)) {
            it.remove();
        }
    }
    System.out.println(list);
}

结果

[a, c, d]

错误方法

法1:for(xxx : yyy)遍历

private static void removeB(List<String> list) {
    for (String s : list) {
        if ("b".equals(s)) {
            list.remove(s);
        }
    }
    System.out.println(list);
}

结果(报异常)

Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
    at java.util.ArrayList$Itr.next(ArrayList.java:859)
    at com.example.a.Demo.removeB(Demo.java:18)
    at com.example.a.Demo.main(Demo.java:14)

法2:for的下标正序遍历

private static void removeB(List<String> list) {
    for (int i = 0; i < list.size(); i++) {
        if ("b".equals(list.get(i))) {
            list.remove(list.get(i));
        }
    }
    System.out.println(list);
}

结果(有的没有删除掉)

[a, b, c, d]

原因分析

需求:通过遍历把list集合的所有数据删除掉。

package com.example.a;
 
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
 
public class Demo {
    private static List<String> list = new ArrayList<>();
 
    public static void main(String[] args) {
        reset();
        // method1();
        // method2();
        // method3();
        // method4();
    }
 
    private static void reset(){
        list.clear();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
    }
 
    
    
    public static void method1() {
        for (int i = 0; i< list.size(); i++) {
            list.remove(i);
        }
        System.out.println(list);
    }
 
    
    
    public static void method2() {
        for (int i = 0; i< list.size(); i++) {
            list.remove(0);
        }
        System.out.println(list);
    }
 
    
    
    public static void method3() {
        int len = list.size();
        for (int i = 0; i < len; i++) {
            list.remove(i);
        }
        System.out.println(list);
    }
 
    
    
    public static void method4() {
        int len = list.size(); // 保证只获取一次长度
        for (int i = 0; i< len; i++) {
            list.remove(0);
        }
        System.out.println(list);
    }
}

以上就是详解Java中List的正确的删除方法的详细内容,更多关于Java List删除方法的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解Java中List的正确的删除方法

本文链接: https://lsjlt.com/news/149121.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解Java中List的正确的删除方法
    目录简介实例正确方法法1:for的下标倒序遍历法2: list.stream().filter().collect()法3: iterator迭代器错误方法法1:for(xxx : ...
    99+
    2024-04-02
  • java 中List删除实例详解
    java 中List删除实例详解1、循环删除List中的元素public static void main(String[] args) { List<String> t=new ArrayList<String&...
    99+
    2023-05-31
    java list删除 ava
  • Golang中正确的文件删除方式
    在日常编程工作中,处理文件是一个常见的操作,而删除文件也是经常会用到的功能之一。在Golang中,删除文件同样是一个常见的操作,但是需要一些注意事项和最佳实践方案来确保操作的安全和正确...
    99+
    2024-02-26
    最佳方法 文件删除 golang实践
  • Java中List删除元素方法总结
    文章目录 Java中List删除元素删除方式总览for循环顺序遍历删除for循环反向遍历删除使用Iterator迭代器删除使用lambda表达式删除列表元素(推荐)使用方法引用删除列表元素 ...
    99+
    2023-09-25
    java list 开发语言
  • Java BigDecimal正确用法详解
    目录一、背景二、事故案例1、问题2、问题复现3、源码分析4、原因分析三、总结四、工具类一、背景 BigDecimal 平时主要用于计算金钱时,其自身提供了很多的构造方法,但是这些构造...
    99+
    2024-04-02
  • Oracle 11g正确删除归档日志方法
    1、用oracle用户登陆rman并连接数据库RMAN>connect target / RMAN>rman target /2、列出并确认归档日志路径RMAN>list arc...
    99+
    2024-04-02
  • MySQL大表清空和删除正确方法
    MySQL大表清空和删除正确方法 1 清空大表 1.1 truncate 删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所有行,而不记录单个行删除操作...
    99+
    2024-04-02
  • golang如何正确删除map中的key
    在 Golang 中,map 是一个非常重要的数据类型,它可用于存储 key-value 对,十分灵活方便。然而,有时候我们需要从 map 中删除某个 key,以便我们能更好地管理和控制我们的数据。Map 是一种无序的集合,它和数组和切片不...
    99+
    2023-05-14
    go语言 Golang map
  • golang怎么正确删除map中的key
    本篇内容主要讲解“golang怎么正确删除map中的key”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“golang怎么正确删除map中的key”吧!在 Golang 中,map 是一个非常重要...
    99+
    2023-07-05
  • 如何正确的删除B-树
    如何正确的删除B-树?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在B-树中删除节点时,可能会发生向兄弟节点借元素,和孩子节点...
    99+
    2024-04-02
  • SQLServer临时表的正确删除方式(sqlserver删除临时表)
    目录SQL Server临时表的正确删除方式1、错误的删除操作:2、正确的删除方式:补充:SQL临时表的使用示例删除临时表SQL Server临时表的正确删除方式 临时表与一般的表不...
    99+
    2023-02-16
    sql删除临时表 sql临时表使用
  • Protobuf在Cmake中的正确使用方法详解
    Protobuf是google开发的一个序列化和反序列化的协议库,我们可以自己设计传递数据的格式,通过.proto文件定义我们的要传递的数据格式。例如,在深度学习中常用的ONNX交换...
    99+
    2024-04-02
  • Java中Optional的正确用法与争议点详解
    目录简介#创建Optional判空取值函数式处理Optional争议点总结简介# 要说Java中什么异常最容易出现,我想NullPointerException一定当仁不让,为了解决...
    99+
    2022-11-13
    Java中Optional用法 Optional java Java中Optional类的使用方法
  • java循环删除list元素的方法是什么
    在Java中,可以使用迭代器来循环遍历并删除List中的元素。以下是一个示例:```javaList list = new Arra...
    99+
    2023-08-26
    java list
  • 详解ubuntu安装opencv的正确方法
    本文介绍的是如何安装ubuntu下C++接口的opencv 1.安装准备: 1.1安装cmake sudo apt-get install cmake 1.2依赖环境 sudo apt-get instal...
    99+
    2022-06-04
    ubuntu安装opencv ubuntu opencv安装
  • gitstash的正确用法详解
    目录概述git stash 具体用法概述 前段时间突然发现,我之前对git stash的使用都是错误的。 具体说来,我是这么使用的:在远端有新的提交,需要git pull来拉取合并...
    99+
    2023-02-06
    git stash用法 git stash
  • Java中List集合的常用方法详解
    目录1、void add(intindex, Eelement)2、boolean addAll(intindex, Collection< extends...
    99+
    2024-04-02
  • MySQL大表删除正确的姿势
    1、背景在生产环境有可能有删除某个不重要大表的需求,因为大表占用的大量磁盘空间,如果我们直接drop掉此表,通常需要20秒以上的时间,总会觉得会卡主MySQL,现在给大家一个正确的删除姿势。2、首先我们查看...
    99+
    2024-04-02
  • 详解 MySQL中count函数的正确使用方法
    1. 描述 在MySQL中,当我们需要获取某张表中的总行数时,一般会选择使用下面的语句 select count(*) from table; 其实count函数中除了*还可以放其他参数,比如常数、主...
    99+
    2022-05-17
    MySQL count MySQL count函数
  • 详解java中List中set方法和add方法的区别
    目录前言相同点不同点总结前言 在Java中的常用的集合接口List中有两个非常相似的方法: E set(int index, E element); void add(int ind...
    99+
    2022-11-13
    java List中set和add区别 java set add区别
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作