/* List的三个子类对象: 1、ArrayList:底层的数据结构为数据,查询速度快,增改慢(JDK出现)。线程不同步。长度为10,按50%增加, 原理:把旧元素赋值到新的集合中,然后再后面添加 2、LinkedList:底层使用的是链表数据结构,增改快,查询慢 3、Vector:底层是数据结构,增改查都慢,已被ArrayList替换(JDK1.0出现)。线程同步。长度默认为10,超过就自增20,按100%增加 详解: Vector: 枚举Enumeration是Vector的专有取出方式。与迭代器相同 LinkedList:类似链表操作。 1、addFirst() 2、addLast(); 3、removeFirst(); //获取或删除元素,如果集合为空,会抛出NoSuchElementException 4、removeLast() 5、E getFirst(); //只删除,不取值 6、E removeFirst(); //删除且取值 JDK1.6出现替代,为空会为null,不抛出异常。 1、peekFirst() 获取但不移除此列表的第一个元素;如果此列表为空,则返回 null。 2、peekLast() 获取但不移除此列表的最后一个元素;如果此列表为空,则返回 null。 3、poll() 获取并移除此列表的头(第一个元素) 4、pollFirst() 获取并移除此列表的第一个元素;如果此列表为空,则返回 null。 5、pollLast() 获取并移除此列表的最后一个元素;如果此列表为空,则返回 null。 */ import java.util.*; class VectorDemo { public static void main(String[] args) { DoLinkedList(); } public static void DoVector() { Vector vec = new Vector(); vec.add("java1"); vec.add("ava2"); Enumeration en = vec.elements(); while(en.hasMoreElements()) { System.out.print(en.nextElement()); } } public static void DoLinkedList() { LinkedList plink = new LinkedList(); plink.add("java1"); plink.add("java2"); plink.add("java3"); plink.add("java4"); System.out.print("原数据:"); System.out.println(plink); while(!plink.isEmpty()) { System.out.print(plink.removeFirst()); //由于removeFirst返回删除要素,所以可以这样 } } }