ArrayList使用三要点:会创建(需导入包、泛型用引用类型如Integer)、会增删查改(add/get/set/remove/size五方法)、理解其自动扩容本质(默认容量10,超限按1.5倍扩容)。

直接上手 ArrayList,关键就三点:会创建、会增删查改、理解它“像数组但能自动变大”的本质。不用背源码,先跑通常用操作。
怎么创建和指定类型
必须导入包,且泛型只能写引用类型——基本类型要用包装类(比如 Integer 代替 int)。
- 推荐写法(带泛型):ArrayList<String> list = new ArrayList<>(); —— 编译期就防止存错类型
- 不推荐写法(裸类型):ArrayList list = new ArrayList(); —— 容易混入不同类型,运行时才报错
- 存数字要这样写:ArrayList<Integer> nums = new ArrayList<>(); nums.add(100);
最常用的五个操作
这五个方法覆盖了 90% 的日常使用场景,记熟名字和参数顺序就行。
- 添加:list.add("苹果") → 加到末尾;list.add(2, "香蕉") → 插入到索引 2 的位置(原位置及之后元素后移)
- 获取:list.get(0) → 拿第 1 个元素(索引从 0 开始!)
- 修改:list.set(0, "橙子") → 把索引 0 处的值换成“橙子”
- 删除:list.remove(0) → 删索引 0 的元素;list.remove("苹果") → 删第一个匹配的“苹果”
- 查大小:list.size() → 返回当前有几个元素(不是容量!)
遍历和判断有没有某个值
两种安全又常用的遍历方式,以及快速确认是否存在:
立即学习“Java免费学习笔记(深入)”;
- 增强 for 循环(推荐初学者):for (String s : list) { System.out.println(s); }
- 传统 for + get(适合需要索引的场景):for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
- 查是否存在:list.contains("梨") → 返回 true 或 false
- 找位置:list.indexOf("梨") → 找到返回索引,没找到返回 -1
一个小提醒:扩容是自动的,但别忽略它
ArrayList 默认初始容量是 10。加到第 11 个元素时,它会自动扩容(通常是原容量 1.5 倍),复制老数组内容——这个过程对开发者透明,但大量新增时会有微小开销。如果预估要存上千条数据,可以初始化时指定容量:new ArrayList<>(1000),减少扩容次数。


















