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

java ArrayList的add方法是插入到最后吗

是的,Java 中的 ArrayList的 ​无参 add(E e)方法​ 确实是 ​将元素插入(追加)到列表的末尾

关键点:​

  1. add(E e)方法:​

    • 这是最常用的 add方法。

    • 它将指定的元素 e追加​ 到此列表的末尾

    • 时间复杂度:​平摊常数时间 (Amortized constant time - O(1))​。这意味着在大多数情况下添加操作非常快,但在内部数组需要扩容时(容量不够时),那次特定的添加操作会稍慢一些(O(n)),因为需要创建新数组并复制数据。扩容后,后续的添加操作又会很快。

  2. add(int index, E element)方法:​

    • 这是另一个重载的 add方法。

    • 它将指定的元素 element插入​ 到此列表中的指定位置 index

    • 所有在 index位置及之后的现有元素都会向后移动一位​(索引加一)。

    • 时间复杂度:​O(n)​,其中 n是列表的大小(更准确地说,是 size - index)。因为可能需要移动很多元素。

示例:​

import java.util.ArrayList;public class ArrayListAddExample {public static void main(String[] args) {ArrayList<String> fruits = new ArrayList<>();fruits.add("Apple");  // 添加到末尾 (索引 0)fruits.add("Banana"); // 添加到末尾 (索引 1)fruits.add("Orange"); // 添加到末尾 (索引 2)System.out.println(fruits); // 输出: [Apple, Banana, Orange]fruits.add(1, "Mango"); // 插入到索引 1 的位置// "Banana" 和 "Orange" 向后移动// 现在列表: [Apple, Mango, Banana, Orange]System.out.println(fruits); // 输出: [Apple, Mango, Banana, Orange]fruits.add("Grape"); // 再次使用无参 add,添加到末尾 (索引 4)System.out.println(fruits); // 输出: [Apple, Mango, Banana, Orange, Grape]}
}

总结:​

  • 当你调用 list.add(item)(不带索引参数)时,item总是被添加到 ArrayList最后

  • 如果你需要将元素插入到列表的特定位置​(开头、中间),则需要使用 list.add(index, item)方法,并指定目标位置的索引。注意这会导致后续元素移动,性能开销更大。

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

相关文章:

  • Kotlin 判空写法对比与最佳实践
  • 如何在中国建设银行网站转账网站域名格式
  • OSI 七层模型
  • HTTP Client
  • 网络彩票网站建设电商具体是做什么的上班
  • 【C语言基础详细版】02. 数组详解:从概念到应用全面解析
  • 告别项目文档滞后:Litho(deepwiki-rs)在CI/CD中的自动化文档生成实践
  • 接口测试-postman-全局变量与环境变量
  • 使用MockMVC进行Web请求验证
  • 淄博网站制作设计html5教程下载百度云
  • 专业网站建设怎么样网站建设的感想与建议
  • CMD命令行
  • MySQL————库的操作
  • Hugging face下载模型错误:401 Client Error: Unauthorized for url
  • 安装系统进阶专题(中)
  • 济南网站建设(力推聚搜网络)北京上地做网站
  • TortoiseSVN下载安装汉化教程(附安装包)
  • 泰安网站建设价格长治公司网站建设
  • (六)Vuex
  • 【代码】P6283 [USACO20OPEN] The Moo Particle S [思维]
  • linux信号(14)——SIGALRM:从“手机闹钟”看SIGALRM:进程的非阻塞定时神器
  • AJAX JSON 实例
  • 昆山做网站费用做精美得ppt网站知乎
  • 聊聊[自己制作手机 之 特别注意事项]
  • 量子通信:从“不可克隆”到“可证明安全”的信息传递新范式
  • 国内外主流的免费计算资源平台
  • XQuery 术语详解
  • 如何快速建一个网站网站内容建设的原则
  • AI 生态平台化加速
  • 【ThreeJs】【性能优化】从渲染底层到业务逻辑的系统性提速方案