java SE 集合(三)

来源:互联网 发布:成都网络推广收入 编辑:程序博客网 时间:2024/05/29 17:21

Collection接口有两个子接口,分别是LIst与Set,今天我们讨论下List接口与它的三个实现类ArrayList、LInkedList、vector

一、List接口

List的主要特征是其元素以线性方式存储,集合中允许存放重复对象且元素有序;

以下内容来自API

public interface List<E>
extends Collection<E>

有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

与 set 不同,列表通常允许重复的元素。更确切地讲,列表通常允许满足 e1.equals(e2) 的元素对 e1e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。难免有人希望通过在用户尝试插入重复元素时抛出运行时异常的方法来禁止重复的列表,但我们希望这种用法越少越好。

List 接口在 iteratoraddremoveequalshashCode 方法的协定上加了一些其他约定,超过了 Collection 接口中指定的约定。为方便起见,这里也包括了其他继承方法的声明。

二、List的实现类

ArrayList底层采用动态数组实现,则其存取元素快,删除插入速度满

vector特性同ArrayList只是他是线程同步的;而Arraylist 线程不安全

LinkedList底层采用链表实现所以删除插入效率高而存取效率低,另外,他还提供了L接口中没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列和双向队列使用。




0 0