首页 > 编程知识 正文

java集合(java的array类)

时间:2023-05-06 20:09:58 阅读:80083 作者:3433

在前一篇文章中,我们概述了Collection的两个分支: List和Set,今天我们就来详细看看List的实现类: ArrayList。 ArrayList的继承关系如下图所示。

如上图所示,ArrayList直接继承了AbstractList,从而实现了List界面。 他是数组队列,相应地提供添加、修改、遍历等功能。

ArrayList实现了RandomAccess接口,表明它具有随机访问功能,可以使用元素的序列号快速访问元素。 这也是数组列表和链接列表的区别。

ArrayList实现了克隆接口,也就是覆盖Object的克隆(),可以克隆。

ArrayList实现了java.io.Serializable接口。 也就是说,ArrayList支持序列化,可以通过序列化进行传输。

下面将介绍数组列表的API。 首先是构造函数。 ArrayList有三个构造函数:

数组列表(、数组列表)、内部容量、数组列表)、集合? 扩展集合)。

其中ArrayList ) )是无参数构造函数,缺省大小为10。 数组(整型容量)是指定数组大小的构造函数,是数组集合吗? 扩展集合)是包含集合的数组列表。

ArrayList包含两个非常重要的成员变量:元素数据数组和整型大小。 其中,elementData是包含数组元素的Object类型数组,可以由上述构造函数指定该数组的大小,缺省值为10。size为数组的大小。

数组和数组有什么不同? 大多数人知道的是ArrayList是动态扩展的,那么ArrayList是如何扩展的呢? 让我们分析一下源代码。

确认ArrayList的大小

添加元素

如源代码所示,在添加新元素时,将调用名为ensureCapacity的方法。 该方法首先比较当前数组的大小与指定数组的大小之间的关系。 如果指定的容量无法容纳当前元素,则当前数组的大小将扩展,新容量=(旧容量*3)/2 1。 然后,将元素复制到新数组中。

ArrayList支持三种类型的导线测量。

(1)通过迭代器进行遍历,即迭代器遍历。

字符串值=空值;

迭代器=列表.迭代器(;

wile(Iter.Hasnext () ) ) ) )。

值=(字符串iter.next ) )。

}

)2) for循环遍历

字符串值=空值;

for (字符串:列表) {

值=s;

}

)3)随机访问,即通过下标进行访问

字符串值=空值;

for (英制=0; i size; I ) {2}

值=列表. get (I;

}

在这三种方法中,第三种随机访问方法最快,第一种迭代方法最慢。

今天,我们讨论了几个List的一个实现类ArrayList的几个实现。 下一篇文章将介绍几个List的另一个实现类LinkedList的实现。 敬请期待。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。