注意:本系列文章中使用的jdk版本都是java8。 ArrayList类图如下:ArrayList的底层由一个数组实现,该数组的特征是固定大小,而ArrayList实现动态扩展。
ArrayList的一些变量如下,将在以下分析中使用。 / ** *默认容量* / private静态最终int DEFAULT_CAPACITY = 10; / ** *空对象数组* / private静态最终Object [] EMPTY_ELEMENTDATA = {}; / ** *无参数构造函数创建的空数组* / private静态最终Object [] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; / ** *缓存存储数据的数组的变量* / transient Object [] elementData; / ***元素数* / private int大小;初始化ArrayList并初始化ArrayList通常使用以下两个构造函数1.1使用无参数构造函数初始化ArrayList时,如果不指定大小,则将创建一个空数组。
public ArrayList(){this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;} 1.2指定数组大小的构造函数将创建一个估计大小的数组。指定大小后,仅指定数组初始值的大小,这不会影响后续的扩展。
指定的优点是它可以节省内存和时间开销。公共ArrayList(int initialCapacity){if(initialCapacity> 0){this.elementData =新对象[initialCapacity];} else if(initialCapacity == 0){this.elementData = EMPTY_ELEMENTDATA;} else {引发新的IllegalArgumentException(“ Illegal容量:“ + initialCapacity);两个添加元素,动态扩展ArrayList.add(E e)源代码:public boolean add(E e){sureCapacityInternal(size + 1); //递增modCount !! elementData [size ++] = e;返回true;} add()中的elementData [size ++] = e很容易理解,即将元素插入size位置,然后插入size ++。
让我们专注于sureCapacityInternal(size + 1)方法;私用void sureCapacityInternal(int minCapacity){If(elementData = = DEFAULTCAPACITY_EMPTY_ELEMENTDATA){minCapacity = Math.max(DEFAULT_CAPACITY,minCapacity);如果(elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA)是首次确定sureExplicitCapacity(ensureExplicitCapacity)变量(ensureExplicitCapacity)(ensureDataCapacity)中的缓存是否与判断内部变量(ensureDataCapacity)是否添加元素相同。如果是第一次添加元素,请将初始大小设置为默认容量10,否则为传入参数。
此方法的目的是获得初始阵列容量。获得初始容量后,请调用suresureExplicitCapacity(minCapacity)方法;私有void sureExplicitCapacity(int minCapacity){modCount ++; //具有溢出意识的代码If(minCapacity)-elementData.length> ExplicitCapacity(0)容量方法;要确定是否需要扩展,如果是第一次添加元素,minCapacity为10,elementData容量为0,则需要扩展。
调用grow(minCapacity)方法。 //数组的最大容量private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE-8; private void grow(int minCapacity){意识溢出的代码= int oldCapacity = elementData.length的原始长度的1.5倍;数组原始长度的1.5倍int newCapacity = oldCapacity +(oldCapacity>> 1); //如果扩展容量小于需要扩展的长度,则如果(newCapacity-minCapacity 0)-minCapacity /数组的最大容量大于容量minCapacity,则使用需要扩展的容量使用最大整数如果(newCapacity- MAX_ARRAY_SIZE> 0)NewCapacity = hugeCapacity(minCapacity); // minCapacity通常接近大小,则长度是一个双数:soCapacity ofCapacity(newCapacity)grow(Capacity))扩展数组的方法,扩展大小为1.5倍于原始数组,如果计算出的扩展容量小于所需容量,则扩展大小为所需容量,如果扩展容量大于阵列的最大容量,则调用hugeCapacity(minCapacity)方法,展开将数组设置为最大整数长度,然后将elemetData数组指向新扩展的内存空间,然后将元素复制到新空间。
当所需的收集容量特别大时,扩展1.5倍会占用大量空间,因此建议在初始化期间估计容量大小。三个删除元素ArrayList提供了两种删除元素的方法,可以按索引和元素删除。
这两个删除是相似的。删除元素后,以下元素将一次向前移动。
ArrayList.remove(int index)源代码:public E remove(int index){rangeCheck(index); modCount ++; E oldValue = elementData(index); Int numMoved = size-index-1;。
公司: 深圳市捷比信实业有限公司
电话: 0755-29796190
邮箱: momo@jepsun.com
产品经理: 李经理
QQ: 2215069954
地址: 深圳市宝安区翻身路富源大厦1栋7楼

更多资讯
获取最新公司新闻和行业资料。
- 耐脉冲电阻PWR..A系列与SWR..A系列、CRW..A系列的性能对比分析 耐脉冲电阻PWR..A系列与SWR..A系列、CRW..A系列的核心区别解析在工业自动化、电力系统及高可靠性电子设备中,耐脉冲电阻因其出色的抗冲击能力而备受青睐。其中,PWR..A系列、SWR..A系列和CRW..A系列是市场上常见的三大类耐脉冲电...
- 如何根据实际需求选择合适的电阻阵列:CN..A、SWR..A与CRW..A系列深度指南 前言:电阻阵列在现代电子设计中的重要性随着电子产品向小型化、高性能和高可靠性方向发展,传统单个电阻已难以满足复杂电路的设计需求。电阻阵列作为一种集成化解决方案,不仅节省了PCB空间,还提升了装配效率与一致...
- 深入解析电阻阵列CN..A系列与SWR..A系列、CRW..A系列的核心差异 引言在电子元器件领域,电阻阵列因其高集成度、稳定性和空间节省优势,广泛应用于精密电路、工业控制及通信设备中。其中,CN..A系列、SWR..A系列和CRW..A系列是市场上常见的三种电阻阵列型号。尽管它们均属于电阻阵列类别,...
- 抗硫电阻AS..A系列与CS..A系列参数详解及应用优势分析 抗硫电阻AS..A系列与CS..A系列核心参数解析在工业自动化、石油化工、电力系统等高腐蚀环境中,电子元器件的可靠性至关重要。抗硫电阻(AS..A系列、CS..A系列)因其优异的耐硫化环境性能,成为关键电路中的首选元件。1. 基本电...
- 如何根据应用场景选择合适的耐脉冲电阻?PWR..A、SWR..A与CRW..A系列选型指南 基于应用场景的耐脉冲电阻选型策略面对PWR..A、SWR..A和CRW..A三大系列,正确选择不仅影响设备性能,还直接关系到系统安全与维护成本。以下从实际应用出发,提供科学选型建议。1. 高压/高能环境:优先选用PWR..A系列当设备部署...
- 浪涌电阻器SWR..A系列与CRW..A系列性能对比及应用解析 浪涌电阻器SWR..A系列与CRW..A系列概述浪涌电阻器是电子电路中用于抑制瞬态过电压、保护敏感元器件的重要元件。其中,SWR..A系列与CRW..A系列作为当前市场主流产品,凭借优异的耐冲击能力、高稳定性与长寿命,在工业控制、电...
- 厚膜电阻器CR..A系列与薄膜精密电阻器AR..A系列的性能对比分析 厚膜电阻器CR..A系列与薄膜精密电阻器AR..A系列核心差异解析在现代电子设备中,电阻器作为基础元件,其性能直接影响电路的稳定性与精度。其中,厚膜电阻器(CR..A系列)与薄膜精密电阻器(AR..A系列)因其制造工艺与材料特性...
- 深入解析耐脉冲电阻阻值范围:如何根据PWR..A与CRW..A系列精准选型 耐脉冲电阻阻值范围的重要性在电子系统设计中,电阻不仅是基础元件,更是决定电路稳定性和安全性的重要因素。尤其是耐脉冲电阻,其阻值范围直接影响系统的过压保护能力、电流限制效果以及热耗散效率。本文将重点分析...
- 深入解析抗硫电阻AS..A系列与CS..A系列的选型与设计要点 抗硫电阻选型指南:AS..A系列与CS..A系列实战应用策略面对复杂工业环境中的电磁干扰与化学腐蚀挑战,正确选择抗硫电阻是保障系统长期稳定运行的关键。本文从设计角度出发,系统梳理AS..A系列与CS..A系列的选型要点。1. 环境条...
- 深入解析CRW..A系列与SWR..A系列电阻器在电力系统中的关键作用 CRW..A系列与SWR..A系列在电力系统中的核心价值随着智能电网与新能源接入系统的快速发展,电力设备对过压保护的需求日益增强。浪涌电阻器作为第一道防线,其性能直接关系到系统安全与运行连续性。本文将从技术原理、实际...
- 耐脉冲电阻PWR..A系列与CRW..A系列阻值范围详解及应用解析 耐脉冲电阻PWR..A系列与CRW..A系列概述耐脉冲电阻是专为应对瞬时高能量脉冲设计的精密电子元件,广泛应用于电源管理、电机控制、通信设备及工业自动化系统中。其中,PWR..A系列与CRW..A系列是目前市场上备受青睐的两款高性能...
- 高压电阻器HVR..A系列与CR..A系列耐高温电阻的性能对比与应用解析 高压电阻器HVR..A系列与CR..A系列耐高温电阻的性能对比与应用解析在现代电子系统中,高压和高温环境下的稳定运行对元器件提出了极高要求。高压电阻器HVR..A系列与CR..A系列耐高温电阻正是为应对这些严苛工况而设计的高性能元...
- 如何正确选型与维护高压电阻器HVR..A系列及CR..A系列耐高温电阻 如何正确选型与维护高压电阻器HVR..A系列及CR..A系列耐高温电阻随着工业自动化与高端电子设备的发展,高压与高温环境下的电阻器选型与维护成为保障系统可靠性的关键环节。本文将系统阐述如何科学选型,并提供实用的维护策...
- CS..A系列电流检测片式电阻器:高精度与小型化设计解析 CS..A系列电流检测片式电阻器概述CS..A系列是专为现代电子设备设计的高精度电流检测贴片电阻,广泛应用于电源管理、电机控制、智能仪表及工业自动化等领域。该系列产品采用精密金属膜或厚膜技术制造,具备优异的温度稳定...
- 深入解读抗硫电阻AS..A系列:从材料到应用的全面指南 抗硫电阻AS..A系列的技术原理与材料创新抗硫电阻的核心挑战在于防止硫元素渗透并引发氧化反应,导致阻值变化甚至失效。AS..A系列通过多项材料与工艺创新,从根本上解决了这一难题。材料与结构创新陶瓷基底 + 高纯度金属膜...
- 如何根据电路需求选择CR..A系列厚膜电阻器与AR..A系列薄膜电阻器 从电路设计角度深度解析电阻器选型策略在实际电路设计中,正确选择电阻器类型是保障系统性能的关键一步。面对市场上常见的厚膜电阻器(CR..A系列)与薄膜精密电阻器(AR..A系列),工程师需结合具体应用场景进行综合评估...
- CR..A系列电阻器参数详解:从阻值到封装全面指南 CR..A系列电阻器关键参数深度解析CR..A系列作为汽车电子领域广泛应用的贴片电阻型号,其参数设计兼顾性能、可靠性和兼容性,是工程师选型的重要参考。1. 标称阻值范围与精度等级支持从1Ω到10MΩ的广泛阻值选择,标准精度等...
- 薄膜精密电阻器(AR..A系列)与线艺(LINEART)滤波器性能对比分析 薄膜精密电阻器(AR..A系列)与线艺(LINEART)滤波器核心优势对比在高精度电子系统设计中,元器件的稳定性、精度和可靠性至关重要。本文将从技术参数、应用场景和系统集成角度,对薄膜精密电阻器(AR..A系列)与线艺(LINE...
- 电阻r的大小对谐振频率有无影响 R对频率没有影响,但影响曲线的陡度,即质量因子Q。R越大,Q越低,峰值越慢。...
- TSS管与聚鼎PXXXX T/S电感的性能对比及应用解析 TSS管与聚鼎PXXXX T/S电感的核心技术优势在现代电子设备中,TSS管(Transient Suppressor Semiconductor)与聚鼎品牌PXXXX系列电感(包括T型与S型)因其卓越的瞬态抑制能力和高可靠性,广泛应用于电源管理、通信设备和工业控制领域。以下...