广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java如何删除list元素
  • 311
分享到

java如何删除list元素

java教程java删除list元素 2021-11-28 00:11:00 311人浏览 才女
摘要

java删除list元素的方法如下:一、正序删除正序删,如果只删除至多1个元素,那只需要在删除后使用break语句跳出循环即可,如果需要删除多个元素,若不注意控制当前列表的size和下一个元素的index,容易报java.lang.Inde

java删除list元素的方法如下:

一、正序删除

正序删,如果只删除至多1个元素,那只需要在删除后使用break语句跳出循环即可,如果需要删除多个元素,若不注意控制当前列表的size和下一个元素的index,容易报java.lang.IndexOutOfBoundsException异常

public static void remove(List list, String target) {    
for(int i = 0, length = list.size(); i < length; i++){
        String item = list.get(i);        
        if(target.equals(item)){
            list.remove(item);
            length--;
            i--;
        }
    }
}

免费学习视频教程推荐:java视频教程

二、倒序删除

倒序删可以克服正序删需要额外管理列表size和下一个元素的index的问题,使用起来也很方便

public static void remove(List list, String target) {    
for(int i = list.size() - 1; i >= 0; i--){
        String item = list.get(i);
        if(target.equals(item)){
            list.remove(item);
        }
    }
}

三、迭代器remove()方法删除(推荐)

public static void remove(List list, String target) {
    Iterator iter = list.iterator();
    while (iter.hasNext()) {
        String item = iter.next();
            if (item.equals(target)) {
            iter.remove();
        }
    }
}

四、CopyOnWriteArrayList线程安全删除

利用 CopyOnWrite容器。CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。

这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需要加,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思想,读和写不同的容器。

public static List remove(ArrayList list, String target) {
    CopyOnWriteArrayList cowList = new CopyOnWriteArrayList(list);
    for (String item : cowList) {
            if (item.equals(target)) {
            cowList.remove(item);
        }
    }
                return cowList;
}

注意:

使用CopyOnWriteArrayList的好处是我们不仅仅可以删除,也可以在遍历的时候添加新元素。

以上方法并没有修改参数list,而是返回CopyOnWriteArrayList给调用者,也就是说CopyOnWriteArrayList并不修改构造它的List,而是自己内部维护着一个List,这一点要特别注意。

CopyOnWriteArrayList不是ArrayList的子类,但它实现了List接口。

五、增强for循环删除

增强for循环中删除元素后继续循环会报 java.util.ConcurrentModificationException 异常,因为元素在使用的时候发生了并发的修改,导致异常抛出,但是删除完毕马上使用break语句跳出循环,则不会触发报错,所以它适合删除至多1个元素。

public static void remove(List list, String target) {
    for (String item : list) {
            if (item.equals(target)) {
            list.remove(item);
                        break;
        }
    }
}

六、stream api filter

Java8引入的stream API带来了新的比较简洁的删除List元素的方法filter,该方法不会改变原List对象,须返回新的对象,下面的例子演示了如何使用stream删除集合中的"*"元素。

List list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("*");
list.add("c");
list.add("*");
List result = list
                        .stream()
                        .filter(item -> !"*".equals(item))
                        .collect(Collectors.toList());

相关文章教程推荐:java入门教程

--结束END--

本文标题: java如何删除list元素

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java如何删除list元素
    java删除list元素的方法如下:一、正序删除正序删,如果只删除至多1个元素,那只需要在删除后使用break语句跳出循环即可,如果需要删除多个元素,若不注意控制当前列表的size和下一个元素的index,容易报java.lang.Inde...
    99+
    2021-11-28
    java教程 java 删除 list 元素
  • java可以删除list元素吗?
    java可以删除list元素,下面给大家介绍一下java删除list元素的几种方法。方式一:使用Iterator的remove()方法public class Test { public static void main(Strin...
    99+
    2017-08-01
    java list
  • Python List 删除元素
    1. 使用del删除指定元素 li = [1, 2, 3, 4] del li[3] print(li) # Output [1, 2, 3] 2. 使用list方法pop删除元素 li = [1, 2, 3, 4] li.pop...
    99+
    2023-01-31
    元素 Python List
  • Java中List删除元素方法总结
    文章目录 Java中List删除元素删除方式总览for循环顺序遍历删除for循环反向遍历删除使用Iterator迭代器删除使用lambda表达式删除列表元素(推荐)使用方法引用删除列表元素 ...
    99+
    2023-09-25
    java list 开发语言
  • go语言中list如何删除元素
    这篇文章主要介绍“go语言中list如何删除元素”,在日常操作中,相信很多人在go语言中list如何删除元素问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”go语言中list如何删除元素”的疑惑有所帮助!接下来...
    99+
    2023-07-05
  • python如何删除list中的某个元素
    可以使用列表的remove()函数来删除指定元素。remove()函数会从列表中删除第一个匹配的元素。例如,如果要删除列表中的元素"...
    99+
    2023-09-22
    python
  • java循环删除list元素的方法是什么
    在Java中,可以使用迭代器来循环遍历并删除List中的元素。以下是一个示例:```javaList list = new Arra...
    99+
    2023-08-26
    java list
  • Python如何删除一个list中的重复元素
    小编给大家分享一下Python如何删除一个list中的重复元素,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!请写出一段 Pyth...
    99+
    2022-10-19
  • python list删除元素的方法有哪些
    Python中删除列表元素的方法有以下几种:1. 使用`del`关键字```pythonmy_list = [1, 2, 3, 4,...
    99+
    2023-09-25
    Python
  • Python list列表删除元素(4种方法)
    在 Python 列表中删除元素主要分为以下 3 种场景: 根据目标元素所在位置的索引进行删除,可以使用 del 关键字或者 pop() 方法; 根据元素本身的值进行删除,可使用列表(list类型)提供的 remo...
    99+
    2023-09-18
    python 开发语言 后端 Powered by 金山文档
  • Python list列表删除元素的4种方法
    目录del:根据索引值删除元素 pop():根据索引值删除元素 remove():根据元素值进行删除 clear():删除列表所有元素 在 Python 列表中删除元素主要分为以下 ...
    99+
    2022-11-12
  • Java List 集合怎么去除null元素
    Java List 集合怎么去除null元素,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。List集合去除null元素使用 for 循环处理集合思路:这种处...
    99+
    2023-06-29
  • JQuery如何增加元素和删除元素
    这篇文章主要介绍了JQuery如何增加元素和删除元素,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JQuery的增加元素,删除元素1. jQuery创建元素方法let&nbs...
    99+
    2023-06-27
  • Python list列表删除元素的方法有哪些
    本篇内容主要讲解“Python list列表删除元素的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python list列表删除元素的方法有哪些”吧!del:根据索引值删除元素del...
    99+
    2023-06-25
  • java数组中如何删除一个元素
    在Java中,数组的长度是固定的,无法直接删除元素。但可以通过创建一个新的数组来间接删除元素。具体步骤如下:1. 创建一个新的数组,...
    99+
    2023-10-18
    java
  • java如何删除map中的某个元素
    在Java中,可以使用`remove()`方法来删除Map中的某个元素。`remove()`方法有两种重载形式:1. `remove...
    99+
    2023-09-25
    java map
  • jquery如何删除html元素
    这篇文章主要介绍了jquery如何删除html元素,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。删除方法:1、使用remove()方法,可以删除被选元素及其子元素,语法“$(...
    99+
    2023-06-15
  • jquery如何删除dom元素
    本文小编为大家详细介绍“jquery如何删除dom元素”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery如何删除dom元素”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、 jQuery的基本语法在使用...
    99+
    2023-07-05
  • javascript如何删除tr元素
    这篇文章主要介绍“javascript如何删除tr元素”,在日常操作中,相信很多人在javascript如何删除tr元素问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java...
    99+
    2022-10-19
  • jquery如何删除元素classname
    本文小编为大家详细介绍“jquery如何删除元素classname”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery如何删除元素classname”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作