Java 集合框架之 List 全面解析(从概念到实践)

List 概念与继承关系

List 是 Java 集合框架中的接口,继承自 CollectionIterable,定义线性表的核心特性:元素有序、允许重复、支持按位置操作。

继承关系图示

Collection 接口核心方法

以下为 Collection 中需重点掌握的方法:

方法 功能说明 示例场景
int size() 返回集合元素个数 判断列表是否为空
boolean add(E e) 添加元素 向列表尾部插入数据
boolean remove(Object o) 删除指定元素 移除特定值
boolean contains(Object o) 检查元素是否存在 验证是否包含某对象
void clear() 清空集合 重置列表

List 专属方法

List 扩展了基于下标的操作,核心方法分类如下:

增删改查方法

  • void add(int index, E e):在指定位置插入元素
  • E remove(int index):删除并返回指定位置的元素
  • E set(int index, E e):修改指定位置元素
  • E get(int index):获取指定位置元素

工具方法

  • List<E> subList(int from, int to):截取子列表(视图,与原列表数据联动)
  • int indexOf(Object o):返回元素首次出现的下标

注意事项

  • subList 返回的是原列表的视图,修改子列表会影响原列表。
  • remove 方法重载:remove(int index) 按位置删除,remove(Object o) 按值删除。

List 实现类与基础使用

List 需通过实现类实例化,常用实现类包括:

  • ArrayList:基于动态数组,适合随机访问。
  • LinkedList:基于双向链表,适合频繁增删。

实例化示例

java 复制代码
List<String> arrayList = new ArrayList<>();  // 数组实现
List<String> linkedList = new LinkedList<>(); // 链表实现

完整使用示例

java 复制代码
List<String> list = new ArrayList<>();
list.add("A");          // 尾部添加
list.add(1, "B");       // 指定位置插入
String item = list.get(0);  // 获取元素
list.set(0, "C");       // 修改元素
list.remove(1);         // 按位置删除
boolean exists = list.contains("A");  // 检查存在性

总结

  1. 接口特性 :List 是有序、可重复的线性表接口,继承自 Collection
  2. 核心操作:支持通过下标进行增删改查,提供子列表视图等工具方法。
  3. 实现类选择ArrayList 适合查询,LinkedList 适合频繁增删。

下期将深入分析 ArrayListLinkedList 的底层实现及性能差异。

相关推荐
野犬寒鸦2 分钟前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
wenzhangli72 分钟前
ooderA2UI BridgeCode 深度解析:从设计原理到 Trae Solo Skill 实践
java·开发语言·人工智能·开源
HalvmånEver5 分钟前
Linux:线程互斥
java·linux·运维
rainbow688912 分钟前
深入解析C++STL:map与set底层奥秘
java·数据结构·算法
灵感菇_16 分钟前
Java 锁机制全面解析
java·开发语言
indexsunny17 分钟前
互联网大厂Java面试实战:Spring Boot微服务在电商场景中的应用与挑战
java·spring boot·redis·微服务·kafka·spring security·电商
娇娇乔木30 分钟前
模块十一--接口/抽象方法/多态--尚硅谷Javase笔记总结
java·开发语言
saber_andlibert42 分钟前
TCMalloc底层实现
java·前端·网络
wangjialelele1 小时前
平衡二叉搜索树:AVL树和红黑树
java·c语言·开发语言·数据结构·c++·算法·深度优先
m0_481147331 小时前
拦截器跟过滤器的区别?拦截器需要注册吗?过滤器需要注册吗?
java