☰
List 接口 ArrayList
2026/11/3 2:46:29 网站建设 项目流程

一、List 接口简介

List 是Collection 的子接口(单列集合)✅ List 三大核心特点:

  1. 有序:存入顺序和取出顺序一致
  2. 可重复:允许存储重复元素
  3. 有索引:支持根据索引操作元素(这是 List 独有的!Set 没有索引)

继承关系:List extends Collection所以 Collection 里所有方法,List 全都可以用,同时 List 新增一套带索引的专属方法

List 特有方法

方法作用
void add(int index, E element)在指定索引位置插入元素
E get(int index)根据索引获取元素
E remove(int index)根据索引删除元素,返回被删掉的元素
E set(int index, E element)修改指定索引位置的元素,返回旧值

⚠️ 重点坑点:remove有两个重载

  • remove(int index):List 独有,按索引删
  • remove(Object o):继承自 Collection,按元素对象删如果存 Integer 集合,直接写list.remove(1)会优先识别成索引!想删除元素 1 要写list.remove(Integer.valueOf(1))

List 的遍历方式(4 种,包含 Lambda)

  1. 迭代器 Iterator
  2. 增强 for 循环 for-each
  3. 普通 for 循环(因为有索引,List 专属)
  4. forEach + Lambda / 方法引用
list.forEach(s -> System.out.println(s)); list.forEach(System.out::println); // 方法引用简写

二、ArrayList(List 最常用实现类)

底层:可变数组(Object [] 数组)特点:

  • 查询快:底层数组,通过索引直接定位
  • 增删慢:中间插入 / 删除元素,后面元素需要移位
  • 线程不安全,多线程环境不推荐使用
  • 可以存 null 元素

1. 底层扩容机制(高频考点)

  1. JDK8:空参构造创建 ArrayList 时,初始是空数组;第一次 add 的时候,才初始化容量为 10
  2. 容量满了之后,自动扩容:新容量 = 原容量 * 1.5 倍
  3. 如果一次性添加很多元素,超过 1.5 倍,直接使用需要的目标容量

2. 常用代码示例

import java.util.ArrayList; import java.util.List; public class TestList { public static void main(String[] args) { // 多态写法:List接口指向ArrayList实现类 List<String> list = new ArrayList<>(); // 继承Collection的add list.add("苹果"); list.add("香蕉"); list.add("橙子"); System.out.println(list); // List特有:根据索引插入 list.add(1,"葡萄"); System.out.println(list); // get 根据索引取值 System.out.println(list.get(2)); // set 修改索引位置元素 String old = list.set(0,"西瓜"); System.out.println("被替换的值:"+old); System.out.println(list); // remove 按索引删除 String del = list.remove(3); System.out.println("删掉的元素:"+del); System.out.println(list); // Lambda遍历 list.forEach(System.out::println); } }

3. 适用场景

✅ 适合:大量查询、遍历,增删操作少的场景 ❌ 不适合:频繁在中间位置插入、删除元素

4. 易错总结

  1. ArrayList 是实现类,实现了 List 接口
  2. 有序、可重复、有索引
  3. 底层数组,查询快、中间增删慢
  4. 扩容 1.5 倍;空参构造不会立刻创建长度 10 数组,JDK8 是懒加载
  5. 线程不安全,不同步

三、List 体系小结

List 接口规定:有序、可重复、带索引; ArrayList:数组实现,查询优先,开发中用得最多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询