【从零学 javase 第三天 】ArrayList 实战案例 + 功能详解,学会就能秒懂动态数组!
在 Java 学习过程中,很多同学对 ArrayList 的理解还停留在“会用 add/get/remove”阶段,甚至拿它当作普通数组使用;实际上,ArrayList 是 Java 集合框架中最重要的动态数组类,它的灵活性和实用性在日常开发中无处不在;
本文我将从零基础案例出发,带你彻底理解 ArrayList 的内部逻辑、常用操作以及实战效果展示,让你在写代码时不仅知道怎么用,还能理解为什么这样用;
一、ArrayList 基础概念
ArrayList 是 Java 集合框架(Collection Framework)中 动态数组实现类,类似于c++的vector;
可以存储任意对象(通过泛型指定类型),动态扩容,不需要提前定义长度,可重复存储元素,提供丰富方法操作元素(增删改查)
相比普通数组:
| 特性 | 数组 | ArrayList |
|---|---|---|
| 长度 | 固定 | 动态,可扩容 |
| 操作 | 索引 | 提供方法:add、remove、get、set |
| 类型 | 基本类型或对象 | 泛型对象更安全 |
小结:ArrayList 就是“可变数组”,比普通数组更灵活,尤其适合管理对象集合。
二、创建 ArrayList
代码示例
import java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
// 创建 ArrayList 存储文章对象
ArrayList<String> articles = new ArrayList<>();
// 添加文章
articles.add("Java基础入门");
articles.add("ArrayList深度解析");
articles.add("面向对象实践");
// 输出全部文章
System.out.println("文章列表:" + articles);
}
}
输出效果
文章列表:[Java基础入门, ArrayList深度解析, 面向对象实践]
说明:
-
add()方法添加元素 -
输出直接使用
System.out.println(),ArrayList 会自动调用toString()
三、ArrayList 常用方法及实战效果
1. 添加元素:add() 类似于c++的push_back();
articles.add("多态实战");
System.out.println("添加新文章后:" + articles);
效果
添加新文章后:[Java基础入门, ArrayList深度解析, 面向对象实践, 多态实战]
2. 获取元素:get(index)
String firstArticle = articles.get(0);
System.out.println("第一篇文章:" + firstArticle);
效果:
第一篇文章:Java基础入门
tip:索引从 0 开始,越界会报
IndexOutOfBoundsException
3. 修改元素:set(index, element)
articles.set(1, "ArrayList使用指南");
System.out.println("修改后文章列表:" + articles);
效果:
修改后文章列表:[Java基础入门, ArrayList使用指南, 面向对象实践, 多态实战]
4. 删除元素:remove(index 或 object)
articles.remove(2); // 删除第三篇
System.out.println("删除后文章列表:" + articles);
效果:
删除后文章列表:[Java基础入门, ArrayList使用指南, 多态实战]
也可以按对象删除:
articles.remove("多态实战");
System.out.println("按对象删除后:" + articles);
效果:
按对象删除后:[Java基础入门, ArrayList使用指南]
5. 判断是否包含元素:contains()
boolean hasJava = articles.contains("Java基础入门");
System.out.println("是否包含 Java 基础入门?" + hasJava);
效果:
是否包含 Java 基础入门?true
6. 获取元素个数:size()
System.out.println("文章总数:" + articles.size());
效果:
文章总数:2
7. 判断是否为空:isEmpty()
System.out.println("文章列表是否为空?" + articles.isEmpty());
效果:
文章列表是否为空?false
四、结合对象使用 ArrayList
ArrayList 不仅可以存字符串,还可以存对象。比如存文章对象 Article:
class Article {
private int id;
private String title;
public Article(int id, String title){
this.id = id;
this.title = title;
}
public void show(){
System.out.println(id + " - " + title);
}
}
使用 ArrayList 存对象:
ArrayList<Article> list = new ArrayList<>();
list.add(new Article(1, "Java入门"));
list.add(new Article(2, "ArrayList实战"));
for(Article a : list){
a.show();
}
效果:
1 - Java入门 2 - ArrayList实战
说明:直接存对象可以存储更多属性调用对象方法操作元素更灵活
五、ArrayList 高级技巧
-
遍历方法:
// for-each
for(Article a : list) a.show();
// 普通 for
for(int i=0; i<list.size(); i++) list.get(i).show();
// lambda + forEach
list.forEach(a -> a.show());
2.排序
list.sort((a1, a2) -> a1.getId() - a2.getId());
3.查找
Article find = list.stream().filter(a -> a.getId()==2).findFirst().orElse(null);
if(find != null) find.show();
通过这篇文章,我自己对 ArrayList 的理解提升了很多。最开始我只是把它当作一个“能存数据的数组”,但是在实际做文章管理系统的时候,我才真正体会到它的灵活性:不仅能动态增加或删除元素,还能存对象、调用对象方法、轻松遍历和排序。
如果你刚接触 Java 或正在学习集合类,我强烈建议你 边写边练:把每个方法都动手试一遍,观察输出结果,尝试存对象、修改对象、删除对象,慢慢你就能真正理解 ArrayList 的底层逻辑和使用技巧。
希望这篇文章对你理解 ArrayList 有所帮助,也欢迎在评论区分享你的小练习或项目经验,互相学习。记住,掌握 ArrayList,几乎就掌握了 Java 集合操作的核心能力,为后续学习 List、Set、Map 打下坚实基础!
更多推荐



所有评论(0)