java容器

时间:2025-03-31 17:20:50

一、List 接口实现类


1. ​ArrayList

特性:基于动态数组实现,支持快速随机访问(时间复杂度 O(1)),但插入/删除元素时需移动后续元素(时间复杂度 O(n))

一、核心方法分类

  1. 添加元素

    • add(E e):尾部追加元素,均摊时间复杂度O(1)
    • add(int index, E element):指定位置插入元素,需移动后续元素,时间复杂度O(n)
    • addAll(Collection<? extends E> c):批量追加元素,时间复杂度与元素数量成正比
  2. 删除元素

    • remove(int index):删除指定位置元素,需前移后续元素,时间复杂度O(n)
    • remove(Object o):删除首次匹配的元素,时间复杂度O(n)
    • removeRange(int fromIndex, int toIndex):删除指定范围元素(受保护方法)
  3. 修改元素

    • set(int index, E element):替换指定位置元素,时间复杂度O(1)
  4. 查询元素

    • get(int index):通过索引直接访问,时间复杂度O(1)
    • indexOf(Object o):查找元素首次出现位置,时间复杂度O(n)
    • contains(Object o):判断元素是否存在,时间复杂度O(n)
  5. 容量管理

    • ensureCapacity(int minCapacity):手动扩容,避免频繁自动扩容
    • trimToSize():将容量调整为当前元素数量,节省内存
  6. 集合操作

    • size():返回元素数量,时间复杂度O(1)
    • isEmpty():判断列表是否为空,时间复杂度O(1)
    • toArray():转换为数组,时间复杂度O(n)
    • 使用 Collections.sort() 方法