Java集合类2—ArrayList、LinkList类

在Java中由List实现了两个类——ArrayList和LinkedList。在Java的帮助文档中我们可以看到ArrayList实现了List、RandomAccess、Cloneable、Serializeable接口。我们在这里写出这些接口并不是去研究这些接口,只是希望读者知道这个类并不是只是实现了List接口得到的。

ArrayList 是由大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。我们安装JDK的时候都会带着一个Java类库的源码包,在Java安装目录中的src压缩文件,读者可以找到它。解压找到其中的ArrayList,类库的文档结构跟我们包的结构相同。我们在里面可以看到,ArrayList是由一个对象数组实现的。每个ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。

ArrayList有一些常用的函数,这些函数名字我们给出来,具体的实现及参数读者自己参照Java的帮助文档详细学习:add、contains、get、indexOf、isEmpty、remove、set、size、toArray等,这里都没有写参数和返回值,大家自己看Java帮助文档学习。下面我们写一个实例程序:

Java集合类2—ArrayList、LinkList类

// one

two

three

[one, two, three]

上面的注释简单的实现了集合类并将其输出,读者注意如果我们直接打印的时候输出的将会是地四行的样子这是读者要留意的。其他的方法我们就不在这里一一实验了。下面我们介绍一下LinkedList类。

LinkedList类是运用双向循环链表来实现的,读者可以研究源代码验证。由于跟ArrayList只是实现的方法不同,其他的基本都相同,这里我们就不过多的介绍了。在LinkedList中还有两个方法——addFirst和addLast。这两个方法在ArrayList中并没有。利用这个及其他的方法,我们可以对LinkedList进行改造,实现栈(stack)、队列(queue)、双向队列(double-ended queue)等数据结构。

对于这两个类都有一个方法toArray(),该方法将返回一个按照当前集合类对象中数据顺序的对象数组。这个方法通常将作为集合类ArrayList和LinkedList类和数组转换的桥梁,所以也是很重要的。下面我们将上面的代码修改一下如下:

Java集合类2—ArrayList、LinkList类

输出的结果和上面的一样。

这种输出的方法并不方便下一次我们将介绍Collections类和迭代器,以实现更多的功能。

希望本次的内容对你有帮助。

你可能感兴趣的:(ArrayList)