和 是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和
插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以
索引数据快插入数据慢, 由于使用了 方法(线程安全)所以性能上比
要差, 使用双向链表实现存储,按序号索引数据需要进行向前或向后遍
历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!
线性表,链表,哈希表是常用的数据结构,在进行 开发时, 已经为我们提供了一系列
相应的类来实现基本的数据结构。这些类均在 包中。本文试图通过简单的描述,向读
者阐述各个类的作用以及如何正确使用这些类。Š
└
!
"#
" !
$" !
接口
是最基本的集合接口,一个 代表一组 %#,即 的元
素(&')。一些 允许相同的元素而另一些不行。一些能排序而另一些不行。
( 不提供直接继承自 的类,( 提供的类都是继承自 的
“子接口”如 和 。
所有实现 接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创
建一个空的 ,有一个 参数的构造函数用于创建一个新的 ,
这个新的 与传入的 有相同的元素。后一个构造函数允许用户复制一个
。
如何遍历 中的每一个元素?不论 的实际类型如何,它都支持一个
)*的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问 中每一个
元素。典型的用法如下:
+((,()*-(..(获得一个迭代子
/)01)**(2
%#(#(,(1)*-(..(得到下一个元素
3
由 接口派生的两个接口是 和 。
接口
是有序的 ,使用此接口能够精确的控制每个元素插入的位置。用户能够使
用索引(元素在 中的位置,类似于数组下标)来访问 中的元素,这类似于 的数