当前位置: 首页 > news >正文

ArrayList重点APi

Java 中的 ArrayList 是 List 接口的动态数组实现,提供了丰富的 API 用于操作元素。以下是其常用 API 的分类说明:

1. 构造方法

  • ArrayList():创建一个初始容量为 10 的空列表。
  • ArrayList(int initialCapacity):创建指定初始容量的空列表。
  • ArrayList(Collection<? extends E> c):通过集合 c 中的元素创建列表(元素顺序与集合迭代器返回顺序一致)。

2. 基本增删改查

  • 添加元素

    • boolean add(E e):在列表末尾添加元素 e,返回 true(始终成功)。
    • void add(int index, E element):在指定索引 index 处插入元素 element,后续元素右移。
    • boolean addAll(Collection<? extends E> c):将集合 c 中的所有元素添加到列表末尾,返回是否修改了列表。
    • boolean addAll(int index, Collection<? extends E> c):从指定索引 index 开始插入集合 c 中的元素。
  • 删除元素

    • E remove(int index):删除指定索引 index 处的元素,返回被删除的元素,后续元素左移。
    • boolean remove(Object o):删除列表中第一个与 o 相等的元素(使用 equals() 判断),返回是否删除成功。
    • boolean removeAll(Collection<?> c):删除列表中所有包含在集合 c 中的元素(差集),返回是否修改了列表。
    • boolean retainAll(Collection<?> c):保留列表中所有包含在集合 c 中的元素(交集),返回是否修改了列表。
    • void clear():清空列表中所有元素。
  • 修改元素

    • E set(int index, E element):替换指定索引 index 处的元素为 element,返回被替换的旧元素。
  • 查询元素

    • E get(int index):返回指定索引 index 处的元素。
    • int indexOf(Object o):返回元素 o 在列表中首次出现的索引;若不存在,返回 -1
    • int lastIndexOf(Object o):返回元素 o 在列表中最后出现的索引;若不存在,返回 -1
    • boolean contains(Object o):判断列表是否包含元素 o(使用 equals() 判断)。

3. 容量与大小

  • int size():返回列表中元素的个数。
  • boolean isEmpty():判断列表是否为空(size() == 0 时返回 true)。
  • void ensureCapacity(int minCapacity):手动扩容,确保列表容量至少为 minCapacity
  • void trimToSize():将列表容量调整为当前元素个数(减少内存占用)。

4. 遍历与转换

  • 遍历相关

    • Iterator<E> iterator():返回列表的迭代器(支持遍历元素)。
    • ListIterator<E> listIterator():返回列表迭代器(支持双向遍历和修改)。
    • ListIterator<E> listIterator(int index):从指定索引 index 开始的列表迭代器。
  • 转换为数组

    • Object[] toArray():将列表元素转换为 Object 数组。
    • <T> T[] toArray(T[] a):将列表元素转换为指定类型 T 的数组(若 a 容量足够则复用,否则创建新数组)。

5. 子列表操作

  • List<E> subList(int fromIndex, int toIndex):返回从 fromIndex(包含)到 toIndex(不包含)的子列表视图。
    • 注意:子列表是原列表的视图,修改子列表会影响原列表,反之亦然。
import java.util.ArrayList;
import java.util.List;public class ArrayListExample {public static void main(String[] args) {// 创建 ArrayListList<String> list = new ArrayList<>();// 添加元素list.add("Apple");list.add("Banana");list.add(1, "Orange"); // 在索引1处插入// 获取元素System.out.println(list.get(0)); // Apple// 修改元素list.set(2, "Grape");// 遍历元素for (String fruit : list) {System.out.println(fruit);}// 查找元素索引System.out.println(list.indexOf("Banana")); // 2// 删除元素list.remove(1); // 删除索引1处的元素// 子列表List<String> subList = list.subList(0, 1);System.out.println(subList); // [Apple]// 清空列表list.clear();System.out.println(list.isEmpty()); // true}
}

注意事项

  • ArrayList 允许 null 元素和重复元素。
  • 线程不安全,多线程环境下需使用 Collections.synchronizedList(new ArrayList<>()) 或 CopyOnWriteArrayList
  • 动态扩容机制:当元素数量超过当前容量时,容量自动扩容为原来的 1.5 倍(通过 Arrays.copyOf() 实现)。

http://www.dtcms.com/a/400123.html

相关文章:

  • 度假村网站建设wordpress 登陆失败
  • 购物网站建设新闻无锡谁做网站好
  • 胶南网站建设价格网站申请内容吗
  • 用wordpress建的大部app优化网站建设
  • 一篇文章讲清楚常见的数据结构
  • 如何做二级域名子目录网站广州app搭建
  • 数据结构 之 【并查集】
  • 可视化小程序开发工具深圳网站优化排名公司
  • 网站建设带采集威海建设集团的网站是什么
  • 【愚公系列】《人工智能70年》038-计算机视觉大放异彩(计算机视觉未来)
  • 网站建设公司douyanet桂林北京网站建设
  • 开通域名后怎样建设网站苏州做网站哪家比较好
  • 考研408计算机网络第47题(2024年)
  • 什么网站可以找到防水工程做建站行业成为买方市场
  • 装修公司网站模板下载最优惠的网站优化
  • Nginx 配置指南:HTTPS 自签名、Location、Rewrite 与状态统计
  • chn域名网站百度知道登录入口
  • 网站做cpa推广引流苍南具城乡建设局网站
  • 工商网站官网入口做国际网站的流程
  • 广告网站素材青创网站首页
  • 02-基于FPGA和LTC2308的数字电压表设计-模数转换原理
  • 前端网站做多语言wordpress 挖矿脚本
  • 外贸出口营销网站wordpress网站管理系统
  • 网站后台内容更换怎么做百度竞价关键词怎么优化
  • 使用大模型进行chat的时候,这里的max output和context length分别是什么意思?所有的模型的上下文长度排名
  • 单片机相关知识点
  • 网站如何伪静态怎么做新浪网站
  • 【多线程】信号量(Semaphore)常见的应用场景
  • 注册网站账号违法吗莱芜最好的网站建设公司
  • seo关键词排名技巧网站诊断网站seo诊断