Java ArrayList

Java ArrayList 基础操作实战笔记

前言

ArrayList 是 Java 集合框架中 java.util 包下的核心类,本质是支持动态扩容的数组,相比普通数组更灵活,可动态添加、删除元素。本文整理了课堂上 ArrayList 基础操作的练习代码,系统总结核心用法,帮助巩固基础。

一、ArrayList 基础准备

1. 导入核心包

使用 ArrayList 必须先导入对应的包,若涉及迭代器遍历需额外导入迭代器包:

java 复制代码
import java.util.ArrayList;
// 迭代器遍历专用
import java.util.Iterator;

2. 初始化集合

创建指定元素类型的 ArrayList(示例为字符串类型),泛型 <String> 用于限定集合仅能存储字符串元素:

java 复制代码
ArrayList<String> list = new ArrayList<String>();

二、核心方法实战

1. 添加元素:add()

提供两种添加方式,适配不同场景:

  • 尾部添加add(元素),直接将元素追加到集合末尾
  • 指定索引添加add(索引, 元素),在指定位置插入元素,后续元素自动后移
课堂代码示例(TestOne/Test 类):
java 复制代码
// 尾部添加元素
list.add("青城");
list.add("博雅");
// 在索引1的位置插入"gc"
list.add(1,"gc");
System.out.println(list); // 输出:[青城, gc, 博雅]

2. 获取元素:get()

通过索引获取集合中的元素,索引从 0 开始,语法:get(索引)

课堂代码示例(Test/TestEight 类):
java 复制代码
// 获取索引为1的元素
System.out.println(list.get(1)); // 输出:博雅
// 结合普通for循环遍历所有元素
for(int i = 0; i < list.size(); i++){
    System.out.println(list.get(i));
}

3. 修改元素:set()

替换指定索引位置的元素,语法:set(索引, 新元素)

课堂代码示例(TestSecond 类):
java 复制代码
list.add("qc");
list.add("by");
System.out.println(list); // 输出:[qc, by]
// 将索引1的元素替换为"wd"
list.set(1,"wd");
System.out.println(list); // 输出:[qc, wd]

4. 删除元素:remove()

两种删除方式,需注意区分使用场景:

  • 按索引删除remove(索引),返回被删除的元素
  • 按元素删除remove(元素),删除第一个匹配的元素,返回布尔值(是否删除成功)
示例1:按索引删除(TestFi 类)
java 复制代码
list.add("qc");
list.add("by");
list.add("gc");
System.out.println(list.remove(1)); // 输出被删除元素:by
System.out.println(list); // 输出:[qc, gc]
示例2:按元素删除(TestSix 类)
java 复制代码
list.add("青城");
list.add("博雅");
list.add("博雅");
list.add("教育");
System.out.println(list.remove("博雅")); // 输出:true(删除成功)
System.out.println(list); // 输出:[青城, 博雅, 教育](仅删除第一个"博雅")

5. 判断元素是否存在:contains()

语法:contains(元素),返回布尔值(true=存在,false=不存在)

课堂代码示例(TestFour 类):
java 复制代码
list.add("qc");
list.add("by");
boolean flag = list.contains("gc");
System.out.println(flag); // 输出:false(集合无"gc")

6. 清空与判空:clear() + isEmpty()

  • clear():清空集合所有元素(集合对象仍存在,变为空集合)
  • isEmpty():判断集合是否为空,返回布尔值
课堂代码示例(TestThir 类):
java 复制代码
list.add("qc");
list.add("by");
System.out.println(list); // 输出:[qc, by]
list.clear(); // 清空集合
System.out.println(list.isEmpty()); // 输出:true
System.out.println(list); // 输出:[]

7. 获取集合长度:size()

语法:size(),返回集合中元素的个数(区别于数组的 length 属性)

课堂代码示例(Test 类):
java 复制代码
list.add("青城");
list.add("博雅");
System.out.println(list.size()); // 输出:2

三、ArrayList 三种遍历方式

课堂练习覆盖 3 种常用遍历方式,按需选择即可:

1. 普通 for 循环(带索引)

适合需要操作索引的场景(如根据索引修改/删除元素)

java 复制代码
// 来自 TestEight 类
for(int i = 0; i < list.size(); i++){
    System.out.println(list.get(i));
}

2. 增强 for 循环(foreach)

语法简洁,无需关心索引,适合仅遍历元素的场景

java 复制代码
// 来自 TestNine 类
for(String name : list){
    System.out.println(name);
}

3. 迭代器(Iterator)

适合遍历过程中删除元素(避免 ConcurrentModificationException 异常)

java 复制代码
// 来自 TestSeven 类
Iterator<String> ite = list.iterator();
while(ite.hasNext()){ // 判断是否有下一个元素
    System.out.println(ite.next()); // 获取并打印下一个元素
}

四、核心总结

  1. ArrayList 是动态数组,无需指定初始长度(也可手动指定以优化性能);
  2. 索引从 0 开始,操作索引时需避免 IndexOutOfBoundsException(索引越界);
  3. remove() 有两种重载方法,按索引删返回被删元素,按元素删返回布尔值;
  4. 遍历方式按需选择:需索引用普通 for 循环、仅遍历用增强 for 循环、遍历删元素用迭代器;
  5. 所有操作均需导入 java.util.ArrayList 包,迭代器遍历需额外导入 java.util.Iterator

通过课堂这些基础练习,可快速掌握 ArrayList 核心用法,后续可结合泛型、Collections 工具类进一步拓展应用场景。

相关推荐
Sam_Deep_Thinking8 小时前
连锁门店的外卖订单平台对接
java·微服务·架构·系统架构
_遥远的救世主_9 小时前
从一次结果集密集型查询 OOM 看 Java 服务的稳定性架构治理
java·后端
hhb_6189 小时前
Swift核心技术难点与实战案例解析
开发语言·ios·swift
一楼的猫9 小时前
从工具链视角对比:番茄作家助手 vs 第三方写作辅助方案
java·服务器·开发语言·前端·学习·chatgpt·ai写作
程序leo源9 小时前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#
likerhood10 小时前
Java static 关键字从浅入深
java·开发语言
猫猫的小茶馆10 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
计算机安禾10 小时前
【c++面向对象编程】第38篇:设计原则(二):里氏替换、接口隔离与依赖倒置
开发语言·c++
_院长大人_10 小时前
Java Excel导出:如何实现自定义表头与字段顺序的完全控制
java·开发语言·后端·excel
磊 子10 小时前
1.4CPU缓存一致性
java·spring cloud·缓存·系统