后 一个构造函数允许用户复制一 个 Collection。 如何遍历 Collection 中的每一个元素?不论 Collection 的实际类型如何, 它都支持一个 iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问 Collection 中每一个 元素。典型的用法如下: Iterator it = collection.iterator(); // 获得一个迭代子 while(it.hasNext()) { Object obj = it.next(); // 得到下一个元素 } 由 Collection 接口派生的两个接口是 List 和 Set。 List 接口 List 是有序的 Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够 使用索引(元素在 List 中的位置,类似于数组下标)来访问 List 中的元素,这类似于 Java 的数组。 和下面要提到的 Set 不同,List 允许有相同的元素。 除了具有 Collection 接口必备的 iterator()方法外, List 还提供一个 listIterator()方法, 返 回一个 ListIterator 接口,和标准的 Iterator 接口相比,ListIterator 多了一些 add()之类的方 法,允许添加,删除,设定元素, 还能向前或向后遍历。 实现 List 接口的常用类有 LinkedList,ArrayList,Vector 和 Stack。 LinkedList 类 LinkedList 实现了 List 接口, 允许 null 元素。 此外 LinkedList 提供额外的 get, remove, insert 方法在 LinkedList 的首部或尾部。这些操作使 LinkedList 可被用作堆栈(stack), 队列(queue)或双向队列(deque)。 注意 LinkedList 没有同步方法。如果多个线程同时访问一个 List,则必须自己实现访问 同步。