一、List 接口实现类
1. ArrayList
特性:基于动态数组实现,支持快速随机访问(时间复杂度 O(1)),但插入/删除元素时需移动后续元素(时间复杂度 O(n))
一、核心方法分类
-
添加元素
-
add(E e)
:尾部追加元素,均摊时间复杂度O(1) -
add(int index, E element)
:指定位置插入元素,需移动后续元素,时间复杂度O(n) -
addAll(Collection<? extends E> c)
:批量追加元素,时间复杂度与元素数量成正比
-
-
删除元素
-
remove(int index)
:删除指定位置元素,需前移后续元素,时间复杂度O(n) -
remove(Object o)
:删除首次匹配的元素,时间复杂度O(n) -
removeRange(int fromIndex, int toIndex)
:删除指定范围元素(受保护方法)
-
-
修改元素
-
set(int index, E element)
:替换指定位置元素,时间复杂度O(1)
-
-
查询元素
-
get(int index)
:通过索引直接访问,时间复杂度O(1) -
indexOf(Object o)
:查找元素首次出现位置,时间复杂度O(n) -
contains(Object o)
:判断元素是否存在,时间复杂度O(n)
-
-
容量管理
-
ensureCapacity(int minCapacity)
:手动扩容,避免频繁自动扩容 -
trimToSize()
:将容量调整为当前元素数量,节省内存
-
-
集合操作
-
size()
:返回元素数量,时间复杂度O(1) -
isEmpty()
:判断列表是否为空,时间复杂度O(1) -
toArray()
:转换为数组,时间复杂度O(n) -
使用
Collections.sort()
方法 -
-