Java ArrayList类详解

基本定义

ArrayList 是 Java 中的一个动态数组数据结构,属于 Java 集合框架的一部分(java.util 包中的类)。它提供了一个基于数组的可变长度列表,允许你在运行时添加、删除和访问元素,而不需要提前指定数组的大小。

简而言之:它是Java函数库中数百个类中的一个,可以将它直接当作自己的类使用

ArrayList类的基础(部分)方法

add(Object elem):向list中加入对象参数,即****在 ArrayList 的末尾添加新元素

add(int index, Object elem):在index对应的下标中添加elem对象

remove(int index):移除对应索引的对象

remove(Object elem):移除该对象,默认只是移除第一个匹配的对象

contains(Object elem):检查是否包含该对象:有的话返回"true",否则返回"false"

isEmpty():如果list中没有元素则返回"true"

indexOf(Object elem):如果存在该对象,则返回对应下标,如果不存在,则返回-1

size():返回ArrayList当前的大小

get(int index):返回当前索引参数的对象

下面来举个例子来解释一下ArrayList的方法使用吧:

java 复制代码
import java.util.ArrayList;

class Egg {

}

public class testArrayList {
    public static void main(String[] args) {
        //1.创建:<括号>代表创建出Egg类型的basket
        //新的ArrayList对象会创建在堆上
        ArrayList<Egg> basket = new ArrayList<Egg>();
        //2.加入元素
        //此ArrayList会产生一个"筐子"来放Egg对象
        Egg s = new Egg();
        basket.add(s);
        //3.再加入元素
        //此ArrayList会再次整一个筐子来存放Egg对象
        Egg b = new Egg();
        basket.add(b);
        //4.查询大小
        //因为basket含有两个元素,size()会返回2
        int theSize = basket.size();
        //5.查询特定元素
        //因为basket带有s所引用的Egg对象,所以此方法会返回true
        boolean isIn = basket.contains(s);
        //6.查询特定元素的位置
        //b是创建的第二个对象,因此返回1
        int idx = basket.indexOf(b);
        //7.判断集合是否为空
        //因为不是空的,所以返回false
        boolean empty = basket.isEmpty();
        //8.删除元素
        basket.remove(s);
    }
}

比较ArrayList与一般数组

一般数组在创建时必须指定大小

但对于ArrayList来说,你只需要创建出此类型的对象就行。它不需要指定大小,因为他会在加入或删除元素时自动调整大小。

new String2 //指定大小

new ArrayList<String>() //不需要指定大小

存放对象给一般数组时必须指定位置

(必须要指定介于0到比length小1之间的数字)

myList1 = b;//指定索引值

如果索引值超出了数组的限制(例如声明大小为2的数组,然后指派索引值3),程序会在执行期出现错误。

使用ArrayList时,你可以用add(Int, Object)这个形式来指定索引值,或者使用add(Object)的形式来给它自行管理大小。

myList.add(b);//不需指定索引值

一般数组使用特殊的语法

但ArrayList是个普通对象,所以不会有特殊的语法。

myList1//方括号是指用在数组上的特殊语法

在Java5.0中的ArrayList是参数化的

虽然我们说ArrayList不想一般数组有特殊的语法,但是它们在Java5.0中有比较特殊的东西-参数化类型。

ArrayList<String> //<String>是类型参数。这代表String的集合,就像说ArraysList<Egg>代表Egg的集合

在Java5.0之前是无法声明出要存放于ArrayList中元素的类型,它只会是异质对象的集合

相关推荐
这是个栗子34 分钟前
前端开发中的常用工具函数(八)
开发语言·前端·javascript
凤凰院凶涛QAQ1 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
研☆香1 小时前
为什么变量声明在赋值前也能使用?—— 深入理解 JavaScript 变量提升与作用域
开发语言·前端·javascript
右耳朵猫AI1 小时前
PHP周刊2026W28 | 安全更新、Laravel 13.18、Twig 3.28
开发语言·php·laravel
second601 小时前
第一部分:快速上手 —— 建立 C++ 基本语法与编程范式
开发语言·c++
郝学胜-神的一滴1 小时前
算法实战:最小k个数——大顶堆的优雅解法
开发语言·数据结构·c++·python·程序人生·算法·排序算法
bksczm2 小时前
linux之线程概念和控制
linux·开发语言·c++
掘金_答案2 小时前
上线那天,一个 ConcurrentHashMap 差点送走我的 AI 客服——3 天排查 JVM 血泪史
java·后端·架构
JackieZhengChina2 小时前
零依赖轻量级JS悬浮提示插件title2tip-js的使用教程
开发语言·javascript·ecmascript
hehelm2 小时前
Linux网络编程—TCP字典翻译系统
linux·开发语言·网络·c++·tcp/ip