iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >深入剖析ArrayList的remove方法
  • 133
分享到

深入剖析ArrayList的remove方法

2024-04-02 19:04:59 133人浏览 八月长安

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

摘要

目录ArrayList的remove方法按索引删除元素使用equals方法比较并删除元素ArrayList remove方法的注意事项总结ArrayList的remove方法 从一个

ArrayList的remove方法

从一个ArrayList中去除某个元素时会用到remove方法,这个方法有两个版本


public E remove(int index)
public boolean remove(Object o)

按索引删除元素

如果接收的是一个int类型的值,则这个值表示的是要删除的元素的索引值,方法返回的值就是被删除的元素,如果索引值在实际的范围外,则会抛出IndexOutOfBoundsException异常。


	    List<Integer> integers = new ArrayList<>(5);
	    integers.add(1);
	    integers.add(2);
	    integers.add(8);
	    integers.add(4);
	    integers.add(5);
	    System.out.println(integers.remove(2));
	    System.out.println(integers);

删除索引为2的元素(8),remove返回值即为8

使用equals方法比较并删除元素

如果接收的是一个object类型的值,则会依次和list中每个元素比较(使用的是equals方法),如果存在,就删除掉第一个遇到的元素,并返回true。


	    List<Integer> integers = new ArrayList<>(5);
	    integers.add(1);
	    integers.add(2);
	    integers.add(8);
	    integers.add(2);
	    integers.add(5);
	    System.out.println(integers.remove(Integer.valueOf(2)));
	    System.out.println(integers);
	    System.out.println(integers.remove(Integer.valueOf(3)));
	    System.out.println(integers);	 

可见将2转换为Integer类型后,调用的remove方法和上面的就不同了,删除了2,并返回了true。

如果比较之后不存在这样的元素,就返回false。

所以对于保存了Integer类型的ArrayList来说,因为自动装箱机制的存在,可能添加元素的时候直接使用int类型的元素即可。但是在删除元素的时候就需要注意,如果想要寻找特定元素进行删除,就需要将int值转换为Integer再作为参数传给remove元素,否则传入的int值会作为索引,导致删除错误的元素。

ArrayList remove方法的注意事项

少罗嗦,先看代码


public class ListRemove {
    public static void main(String[] args) {
        System.out.println("测试remove包装类型和非包装类型");
        ArrayList<Integer> myList = new ArrayList<Integer>();
        for (int k = 0; k < 10; k++) {
            myList.add((k + 1) * 10);
        }
        System.out.println("myList:" + myList);
        // remove(8) 是删掉下标为8的元素
        System.out.println(String.fORMat("%s:%s myList:%s", "remove(8)", myList.remove(8), myList));
        // 把元素80换成8
        myList.set(myList.indexOf(80), 8);
        Collections.shuffle(myList);
        System.out.println("myList:" + myList);
        // myList.remove(Integer.valueOf(8)) 是删掉8这个元素
        System.out.println(String.format("%s:%s myList:%s", "remove(Integer.valueOf(8))", myList.remove(Integer.valueOf(8)), myList));
    }
}

output:

测试remove包装类型和非包装类型
myList:[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
remove(8):90 myList:[10, 20, 30, 40, 50, 60, 70, 80, 100]
myList:[20, 50, 40, 60, 100, 10, 30, 70, 8]
remove(Integer.valueOf(8)):true myList:[20, 50, 40, 60, 100, 10, 30, 70]

总结

如果ArrayList内装的是Integer对象,则 .remove(8)是删掉下标为8的元素

.remove(Integer.valueOf(8)) 是删掉8这个元素

查看源码,发现public E remove(int index)是ArrayList父类AbstractList的方法;public boolean remove(Object o)是AbstractList的父类AbstractCollection中的方法。

在ArrayList中发生了重载

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 深入剖析ArrayList的remove方法

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

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

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

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

下载Word文档
猜你喜欢
  • 深入剖析ArrayList的remove方法
    目录ArrayList的remove方法按索引删除元素使用equals方法比较并删除元素ArrayList remove方法的注意事项总结ArrayList的remove方法 从一个...
    99+
    2022-11-12
  • 深入剖析Java中String类的concat方法
    目录Java String类的concat方法String的两点特殊性源码分析String类中concat()方法笔记及底层实现Java String类的concat方法 ...
    99+
    2022-11-12
  • JS class语法糖的深入剖析
    目录引言class 第一个好:私有变量class 第二个好:super 继承引言 在很早以前,写过一篇文章 “类”设计模式和“原型”设...
    99+
    2022-11-13
  • 深入剖析JavaReentrantLock的源码
    目录1. ReentrantLock的使用2. ReentrantLock类结构3. ReentrantLock源码解析3.1 ReentrantLock构造方法3.2 非公平锁源码...
    99+
    2022-11-21
    Java ReentrantLock源码 Java ReentrantLock
  • 怎样深入剖析DIV概念和用法
    本篇文章给大家分享的是有关怎样深入剖析DIV概念和用法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在学习网页设计的过程中DIV的概念经常会遇...
    99+
    2022-10-19
  • 深入浅析ArrayList类在Java中的作用
    这期内容当中小编将会给大家带来有关深入浅析ArrayList类在Java中的作用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java中ArrayList类详细介绍ArrayList是一个可变长度数组,它...
    99+
    2023-05-31
    java arraylist类
  • 深入剖析OpenMP锁的原理与实现
    目录前言深入分析 omp_lock_tomp_lock_t 源码分析深入分析 omp_nest_lock_tomp_nest_lock_t 源码分析源代码函数名称不同的原因揭秘总结前...
    99+
    2023-01-28
    OpenMP锁原理 OpenMP锁实现 OpenMP锁
  • 如何深入剖析DIV标签的使用
    如何深入剖析DIV标签的使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。向大家描述一下DIV标签的使用,DIV标签称为区隔标...
    99+
    2022-10-19
  • 深入剖析springBoot中的@Scheduled执行原理
    目录springBoot @Scheduled执行原理一、前言二、@Scheduled使用方式三、@Scheduled代码执行原理说明@Scheduled 的一些坑springBoo...
    99+
    2022-11-12
  • Nginx中rewrite(地址重定向)的深入剖析
    目录一、rewrite语法二、应用场景三、rewrite指定工作原理四、flag 参数简介1、last2、break3、redirect4、parmanent五、示例总结一、rewr...
    99+
    2022-11-13
  • 深入浅析ArrayList 和 LinkedList的执行效率比较
    一、概念:    一般我们都知道ArrayList* 由一个数组后推得到的 List。作为一个常规用途的对象容器使用,用于替换原先的 Vector。允许我们快速访问元素,但在从列表中部插入和删除元素时,速度却嫌...
    99+
    2023-05-31
    arraylist linkedlist 执行效率
  • 如何从三个方面深入剖析Java编程语言
    如何从三个方面深入剖析Java编程语言,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java编程语言需要我们进行相关知识的学习,不少人都会说我们要注意相关问题的介绍。下面我...
    99+
    2023-06-17
  • 深入解析HashMap的put方法
    目录一.创建二.put()三.数组初始化四.扩容一.创建 这个相信大家也都知道怎么使用。今天就深入理解一下这里的底层原理。 首先HashMap在java中,创建出来是一个数组,然后...
    99+
    2022-11-13
  • 深入剖析Android系统中Service和IntentService的区别
    Android中的Service是用于后台服务的,当应用程序被挂到后台的时候,问了保证应用某些组件仍然可以工作而引入了Service这个概念,那么这里面要强调的是Service...
    99+
    2022-06-06
    service intentservice Android
  • ConcurrentHashMap: get、remove方法的示例分析
    小编给大家分享一下ConcurrentHashMap: get、remove方法的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、get方法get方法:获取元素,根据目标key所在桶的第一个元素的不同采用不同的方...
    99+
    2023-06-15
  • 深度剖析len函数的意义与用法
    深入解析len函数的含义和用途在许多编程语言中,len函数常常用于获取字符串、列表、元组、字典等数据结构的长度。在本文中,我们将深入解析len函数的含义和用途,并提供具体的代码示例。一、len函数的含义len函数是Python标准库中内置的...
    99+
    2023-12-28
    len函数:长度计算 解析:解析原理 用途:应用范围
  • 深入浅析Pytorch中stack()方法
    目录1. 概念2. 参数3. 举例3.1 四个shape为[3, 3]的张量3.1.1 dim=0的情况下,直接来看结果。3.1.2 dim=1的情况下3.1.2 dim=2的情况下...
    99+
    2022-11-12
  • 深入剖析Android的Volley库中的图片加载功能
    一、基本使用要点回顾 Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载. ImageLoader的内...
    99+
    2022-06-06
    图片 volley Android
  • 深入浅析java中的排序方法
    这篇文章给大家介绍深入浅析java中的排序方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。排序1、概念:有n个记录的序列{R1,R2,.......,Rn}(此处注意:1,2,n 是下表序列,以下是相同的作用),其相...
    99+
    2023-05-31
    java 排序 ava
  • 深入浅析Java中的方法重写
    深入浅析Java中的方法重写?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、方法重写(Override)    &nb...
    99+
    2023-05-31
    java 方法重写 ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作