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

相关推荐
凯尔萨厮4 小时前
Springboot2.x+JSP项目创建
java·数据库
暴力求解4 小时前
Linux---保存信号
linux·运维·服务器·开发语言·操作系统
钝挫力PROGRAMER4 小时前
贫血模型的改进
java·开发语言·设计模式·架构
lsx2024064 小时前
AngularJS 事件处理机制详解
开发语言
小书房4 小时前
Kotlin的内联函数
java·开发语言·kotlin·inline·内联函数
码农阿豪4 小时前
Python 操作金仓数据库的完全指南(上篇):连接管理与高可用
开发语言·数据库·python
计算机学姐4 小时前
基于微信小程序的校园失物招领管理系统【uniapp+springboot+vue】
java·vue.js·spring boot·mysql·信息可视化·微信小程序·uni-app
xyq20244 小时前
CSS Backgrounds(背景)
开发语言
Aurorar0rua4 小时前
CS50 x 2024 Notes C - 06
开发语言·学习方法