1.ArrayList 基础认知核心概念ArrayList 是 Java 中的一个集合类本质是一个动态数组容器用于存储数据功能上类似数组但长度可以自动扩容。它是 Java 集合框架中最常用的实现类之一属于java.util包。学习思路学会创建 ArrayList 对象掌握集合方法对容器中的数据进行增删改查理解集合的核心特点2.ArrayList 的创建与初始化创建语法// 完整写法 ArrayListE list new ArrayListE(); // 简化写法JDK 7支持后面的泛型可以省略 ArrayListE list new ArrayList();泛型E规定集合只能存储指定类型的元素E 表示引用类型基本类型需用包装类如Integer对应int。示例// 创建存储字符串的集合 ArrayListString strList new ArrayList(); // 创建存储整数的集合基本类型int用包装类Integer ArrayListInteger intList new ArrayList();构造方法ArrayList()无参构造创建一个初始容量为 10 的空列表后续会自动扩容。通常直接使用无参构造即可因为集合支持动态扩容初始容量无需手动指定。3.ArrayList 常用方法返回值为boolean方法功能示例contains(Object o)判断集合是否包含指定元素包含返回truelist.contains(Java) → trueadd(E e)将元素添加到集合末尾添加成功返回truelist.add(Python) → true返回值为int方法功能示例size()获取集合中的元素个数类似数组的lengthlist.size() → 3返回值为数组Object[]方法功能示例toArray()将集合转换为Object[]数组Object[] arr list.toArray();返回值为泛型E方法功能示例set(int index, E element)修改指定索引的元素返回被替换的旧元素list.set(0, C) → 返回原索引0的元素remove(int index)删除指定索引的元素返回被删除的元素list.remove(1) → 返回被删除的元素remove(Object o)删除第一个匹配的指定元素成功删除返回truelist.remove(Python) → trueget(int index)获取指定索引的元素list.get(0) → 返回索引0的元素无返回值void方法功能示例clear()清空集合中的所有元素list.clear();add(int index, E element)在指定索引位置插入元素list.add(1, Go);4.迭代器Iterator遍历迭代器是 ArrayList 提供的安全遍历工具专门用于遍历和删除集合元素避免普通for循环删除时出现的索引错位问题。核心方法方法功能hasNext()判断集合中是否还有下一个元素next()返回下一个元素并将指针移到下一个位置remove()删除迭代器最后访问的元素安全删除使用示例import java.util.ArrayList; import java.util.Iterator; public class IteratorDemo { public static void main(String[] args) { ArrayListString list new ArrayList(); list.add(Java); list.add(Python); list.add(C); // 1. 获取迭代器 IteratorString iterator list.iterator(); // 2. 遍历集合 while (iterator.hasNext()) { String item iterator.next(); System.out.println(item); // 安全删除元素避免索引错位 if (item.equals(Python)) { iterator.remove(); } } System.out.println(list); // 输出[Java, C] } }5.ArrayList 与数组的区别对比维度ArrayList数组长度特性动态扩容长度可变长度固定初始化后不可变存储类型只能存储引用类型基本类型需用包装类可以存储基本类型和引用类型适用场景适合数据量不确定、需要频繁增删的场景适合数据量固定、需要按索引快速访问的场景遍历删除迭代器遍历可安全删除普通for循环删除会导致索引错位长度获取size()方法length属性元素获取get(index)方法arr[index]6.ArrayList 遍历方式增强 for 循环foreach 适合仅遍历元素、不涉及索引的场景 for (String item : list) { System.out.println(item); }迭代器遍历 适合需要在遍历中删除元素的场景安全删除 IteratorString iterator list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }7.核心注意事项泛型约束ArrayList 的泛型只能是引用类型存储基本类型时必须使用对应的包装类如int→Integer。迭代器删除在遍历中删除元素时必须使用迭代器的remove()方法否则会引发ConcurrentModificationException。扩容机制默认初始容量为 10当元素数量超过容量时会自动扩容为原容量的 1.5 倍。性能特点ArrayList 基于数组实现按索引访问速度快但中间位置插入 / 删除元素效率较低需要移动后续元素。8.完整示例import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { // 1. 创建集合 ArrayListString list new ArrayList(); // 2. 添加元素 list.add(Java); list.add(Python); list.add(C); // 3. 获取元素 System.out.println(索引0的元素 list.get(0)); // 4. 修改元素 String oldValue list.set(1, Go); System.out.println(被替换的旧元素 oldValue); // 5. 删除元素 String removed list.remove(2); System.out.println(被删除的元素 removed); // 6. 判断包含 System.out.println(是否包含Java list.contains(Java)); // 7. 遍历集合增强for for (String item : list) { System.out.println(item); } // 8. 清空集合 list.clear(); System.out.println(集合大小 list.size()); // 输出0 } }