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 工具类进一步拓展应用场景。

相关推荐
程序员黑豆6 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
风流 少年7 小时前
Spring AI 2.0:Memory
java·后端·spring
码匠许师傅7 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
2603_965148118 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
小席是个热心肠8 小时前
AI相关的自我学习
java·人工智能·学习
知无不研10 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
数智化管理手记10 小时前
海量数据如何沉淀有效数据资产?数据标准化治理方案如何搭建?
java·大数据·人工智能
cfm_291411 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
鲸采云SRM采购管理系统12 小时前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
C++ 老炮儿的技术栈12 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐