1ArrayList:

     底层数据结构是数组,查询快,增删慢线程不安全,效率高
查询快原因:
     底层数据结构是数组,数组有索引,索引的作用相当于字典中的字母,通过这个字母,查到对应区域,不要一个一个字区比较。所以查询块.
增删慢原因:
     底层结构是数组,在x索引处添加或者删除一个元素,x-1处元素的索引以及x-1以后元素的索引值都要发生改变,所以相对链表而已增删慢。

2Vector:
     底层数据结构是数组,查询快,增删慢线程安全,效率低

Vector的特有功能:
1:添加功能
public void addElement(Object obj)————– add()
2:获取功能
public Object elementAt(int index)—————-get()
public Enumeration elements()——————–Iterator iterator()

  • boolean hasMoreElements()——————–hasNext()
  • Object nextElement()—————————-next()
        Vector list=new Vector();
        list.addElement(1);
        list.addElement(2);
        list.addElement(3);
        list.addElement(4);
        list.addElement(5);
        System.out.println("-------add-------");
        System.out.println(list);

        System.out.println("-------elementAt-------");
        System.out.println(list.elementAt(0));

        System.out.println("-------elements-------");
        Enumeration en=list.elements();
        while (en.hasMoreElements()) {
            System.out.print(en.nextElement()+" ");

        }
输出:

-------add-------
[1, 2, 3, 4, 5]
-------elementAt-------
1
-------elements-------
1 2 3 4 5 

3LinkedList:
     底层数据结构是链表,查询慢,增删快线程不安全,效率高
查询慢原因:
     底层数据结构是链表,查一个元素需要从首元素一个一个查询下去
增删快原因:
     底层数据结构是链表,假如需要在x,z元素之间添加一个y元素,只需要把x元素的指针域指向y节点,y元素的指针域指向z节点;假如需要在x,y,z元素之间删除y元素,只需要把x元素的指针域指向z节点,y元素的指针域指向null,这样就删除y元素了

3LinkedList的特有功能:
A:添加功能
public void addFirst(Object e)
public void addLast(Object e)
B:获取功能
public Object getFirst()
public Obejct getLast()
C:删除功能
public Object removeFirst();删除第一个元素,并返回
public Object removeLast();删除最后一个元素,并返回

posted on 2017-04-03 21:27  2637282556  阅读(172)  评论(0编辑  收藏  举报