ArrayList的remove()方法

如题所述

第1个回答  2022-07-24

最近从PHP转行于Java,对于PHP 弱语言的好处就是一个数组可以代替Java 好多种数据结构,对于PHP的数组移除已经很熟悉了【感兴趣传送门: https://www.jianshu.com/p/dafcf8d97aff
】,但是对于Java的 ArrayList 移除方法,也做了一个简单的了解,毕竟作为一个充满求知欲的程序员,不明白得实现原理,对不起这个行业。
'不如'正题。
一. remove ,其有2种重载方式

这样就可以移除 long 型的3了,其实可以理解为,想移除一个对应值,直接remove(value)即可【按照元素删除 会删除和参数匹配的第一个元素】,不需要知道下标,前提是存在该值,当然如果不存在想尝试移除,只会得到一个 false 而已。
查看是否存在某值 a.contains(value) ,返回值为 Boolean .
2. E remove(int var1)
可以简单看到其返回值是个泛型,其实它的入参就是一个 list 的下标 key ,返回的是移除的值
源码如下

说道这里,当时我有个很大的疑问,我如果传入一个number,它怎么知道我是移除的下标还是value呢,小朋友,一起熟悉下,java数据类型吧。
首先定义整数型的List,只能这样写

所以你应该知道了吧,按照下标移除参数类型是 int ,list根本定义不出int型的元素,所以就根本不存在那种区分不出来的情况。

二. list 初始化
list初始化,有一种很简单的方式

需要注意的一点是,这个方式虽然简单,但是无法使用remove移除元素,
使用时会报错 Exception in thread "main" java.lang.UnsupportedOperationException

相似回答
大家正在搜