- /*
- 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返回删除要素,所以可以这样
- }
- }
- }