Java常用API之ArrayList类(重点)
1.ArrayList 基础认知核心概念ArrayList 是 Java 中的一个集合类本质是一个动态数组容器用于存储数据功能上类似数组但长度可以自动扩容。它是 Java 集合框架中最常用的实现类之一属于java.util包。学习思路学会创建 ArrayList 对象掌握集合方法对容器中的数据进行增删改查理解集合的核心特点2.ArrayList 的创建与初始化创建语法// 完整写法 ArrayListE list new ArrayListE(); ​ // 简化写法JDK 7支持后面的泛型可以省略 ArrayListE list new ArrayList();泛型E规定集合只能存储指定类型的元素E 表示引用类型基本类型需用包装类如Integer对应int。示例// 创建存储字符串的集合 ArrayListString strList new ArrayList(); ​ // 创建存储整数的集合基本类型int用包装类Integer ArrayListInteger intList new ArrayList();构造方法ArrayList()无参构造创建一个初始容量为 10 的空列表后续会自动扩容。通常直接使用无参构造即可因为集合支持动态扩容初始容量无需手动指定。3.ArrayList 常用方法返回值为boolean方法功能示例contains(Object o)判断集合是否包含指定元素包含返回truelist.contains(Java) → trueadd(E e)将元素添加到集合末尾添加成功返回truelist.add(Python) → true返回值为int方法功能示例size()获取集合中的元素个数类似数组的lengthlist.size() → 3返回值为数组Object[]方法功能示例toArray()将集合转换为Object[]数组Object[] arr list.toArray();返回值为泛型E方法功能示例set(int index, E element)修改指定索引的元素返回被替换的旧元素list.set(0, C) → 返回原索引0的元素remove(int index)删除指定索引的元素返回被删除的元素list.remove(1) → 返回被删除的元素remove(Object o)删除第一个匹配的指定元素成功删除返回truelist.remove(Python) → trueget(int index)获取指定索引的元素list.get(0) → 返回索引0的元素无返回值void方法功能示例clear()清空集合中的所有元素list.clear();add(int index, E element)在指定索引位置插入元素list.add(1, Go);4.迭代器Iterator遍历迭代器是 ArrayList 提供的安全遍历工具专门用于遍历和删除集合元素避免普通for循环删除时出现的索引错位问题。核心方法方法功能hasNext()判断集合中是否还有下一个元素next()返回下一个元素并将指针移到下一个位置remove()删除迭代器最后访问的元素安全删除使用示例import java.util.ArrayList; import java.util.Iterator; ​ public class IteratorDemo { public static void main(String[] args) { ArrayListString list new ArrayList(); list.add(Java); list.add(Python); list.add(C); ​ // 1. 获取迭代器 IteratorString iterator list.iterator(); ​ // 2. 遍历集合 while (iterator.hasNext()) { String item iterator.next(); System.out.println(item); ​ // 安全删除元素避免索引错位 if (item.equals(Python)) { iterator.remove(); } } ​ System.out.println(list); // 输出[Java, C] } }5.ArrayList 与数组的区别对比维度ArrayList数组长度特性动态扩容长度可变长度固定初始化后不可变存储类型只能存储引用类型基本类型需用包装类可以存储基本类型和引用类型适用场景适合数据量不确定、需要频繁增删的场景适合数据量固定、需要按索引快速访问的场景遍历删除迭代器遍历可安全删除普通for循环删除会导致索引错位长度获取size()方法length属性元素获取get(index)方法arr[index]6.ArrayList 遍历方式增强 for 循环foreach 适合仅遍历元素、不涉及索引的场景 for (String item : list) { System.out.println(item); }迭代器遍历 适合需要在遍历中删除元素的场景安全删除 IteratorString iterator list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }7.核心注意事项泛型约束ArrayList 的泛型只能是引用类型存储基本类型时必须使用对应的包装类如int→Integer。迭代器删除在遍历中删除元素时必须使用迭代器的remove()方法否则会引发ConcurrentModificationException。扩容机制默认初始容量为 10当元素数量超过容量时会自动扩容为原容量的 1.5 倍。性能特点ArrayList 基于数组实现按索引访问速度快但中间位置插入 / 删除元素效率较低需要移动后续元素。8.完整示例import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { // 1. 创建集合 ArrayListString list new ArrayList(); // 2. 添加元素 list.add(Java); list.add(Python); list.add(C); // 3. 获取元素 System.out.println(索引0的元素 list.get(0)); // 4. 修改元素 String oldValue list.set(1, Go); System.out.println(被替换的旧元素 oldValue); // 5. 删除元素 String removed list.remove(2); System.out.println(被删除的元素 removed); // 6. 判断包含 System.out.println(是否包含Java list.contains(Java)); // 7. 遍历集合增强for for (String item : list) { System.out.println(item); } // 8. 清空集合 list.clear(); System.out.println(集合大小 list.size()); // 输出0 } }

相关新闻

IDEA 实例类多开bug:勾选后还是只能运行一个类

IDEA 实例类多开bug:勾选后还是只能运行一个类

首先设置1.即使已经勾选allow multiple instance 点一下应用和ok要是还是不行就邪修了:指的是在run环境下运行当然可以直接在service更方便,但是我这边用run跑更稳定些建立要多开的实例 加一个额外实例alt 4显示run把要多开的弄出去留额外实例再删掉appl…

2026/7/3 22:18:58 阅读更多 →
蓝桥杯单片机设计与开发组第15届国赛关于串口部分研究

蓝桥杯单片机设计与开发组第15届国赛关于串口部分研究

注意点&#xff1a;1.注意引用<stdio.h>头文件&#xff0c;然后进行重定向&#xff0c;这样可以使用printf直接打印数据&#xff0c;不在需要用字节或指针之类的去发送&#xff08;实测非常好用&#xff0c;强烈推荐&#xff09;2.关于void panduan()函数一定要放在中断里…

2026/5/17 4:28:49 阅读更多 →
修改kafka适应多种格式上传

修改kafka适应多种格式上传

核心改造思路抽象通用消息结构体&#xff1a;定义基础消息结构&#xff0c;支持不同业务类型&#xff08;如上传、Prompt 任务、SQL 任务&#xff09;&#xff1b;多 Topic 支持&#xff1a;允许动态指定 Topic&#xff0c;而非固定使用配置文件的 Topic&#xff1b;通用发送方…

2026/7/3 4:51:36 阅读更多 →

最新新闻

8款AI工具助力论文写作:从选题到查重全流程指南

8款AI工具助力论文写作:从选题到查重全流程指南

1. 论文写作痛点与AI工具的价值 作为一名经历过毕业论文"洗礼"的过来人&#xff0c;我深知继续教育学生在论文写作过程中面临的独特挑战。白天工作、晚上学习的时间碎片化&#xff0c;缺乏系统的学术训练&#xff0c;加上对最新研究工具的不熟悉&#xff0c;往往导致…

2026/7/4 13:47:31 阅读更多 →
国内稳定使用GPT-4o的三种方案深度对比

国内稳定使用GPT-4o的三种方案深度对比

1. 这个问题背后&#xff0c;藏着多少人没说出口的焦虑 2026年了&#xff0c;我翻出自己2023年第一次尝试开通ChatGPT Plus时的截图——那张被拒付三次、客服回复“系统检测到非发行国交易行为”的邮件还静静躺在邮箱里。当时花了一整个下午研究虚拟卡、换浏览器指纹、改时区、…

2026/7/4 13:47:31 阅读更多 →
基于VGG16与CNN的肺部结节智能诊断系统开发

基于VGG16与CNN的肺部结节智能诊断系统开发

1. 项目背景与核心价值 肺部结节早期筛查是医学影像分析领域的重要课题。传统人工阅片方式存在效率低、主观性强等问题&#xff0c;而基于深度学习的自动化分类系统能够显著提升诊断准确率和一致性。这个毕业设计项目结合了计算机视觉与医学图像处理两大热门方向&#xff0c;采…

2026/7/4 13:47:31 阅读更多 →
WSaiOS:一种基于确定性-概率混合架构的AI语义能力模拟系统

WSaiOS:一种基于确定性-概率混合架构的AI语义能力模拟系统

WSaiOS&#xff1a;一种基于确定性-概率混合架构的AI语义能力模拟系统作者&#xff1a;东塬一老翁发表时间&#xff1a;2026年7月4日版本&#xff1a;1.0---摘要随着大语言模型&#xff08;LLM&#xff09;在自然语言处理领域的广泛应用&#xff0c;其高昂的计算成本、低可解释…

2026/7/4 13:45:30 阅读更多 →
PHP源码保护实战:从混淆加密到授权系统的2024一体化方案

PHP源码保护实战:从混淆加密到授权系统的2024一体化方案

1. 项目概述与核心需求解析 “2024 首发 PHP加密系统php源码”这个标题&#xff0c;乍一看像是某个资源分享站点的标题&#xff0c;但背后折射出的&#xff0c;其实是PHP开发者、项目管理者以及商业软件供应商们一个持续了二十多年的核心痛点&#xff1a; 如何保护自己的PHP源…

2026/7/4 13:45:30 阅读更多 →
15A无刷电机FOC控制:硬件选型与算法优化实践

15A无刷电机FOC控制:硬件选型与算法优化实践

1. 项目背景与核心挑战在工业自动化、无人机和电动汽车等领域&#xff0c;无刷直流电机&#xff08;BLDC&#xff09;因其高效率、长寿命和低维护需求而广受欢迎。然而&#xff0c;实现高性能的BLDC控制并非易事&#xff0c;尤其是当电流需求高达15A时&#xff0c;工程师们面临…

2026/7/4 13:39:25 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布&#xff0c;这是一个关键的安全修复版本&#xff0c;修复了多个方面的问题&#xff0c;还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出&#xff0c;mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南&#xff1a;使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL&#xff08;Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器&#xff0c;与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻