Vector、List、LinkedList

Vector 遍歷
 Vector<String> vestor =new Vector<String>();
        vestor.add("qq");
        vestor.add("bb");
        vestor.add("ee");

        Iterator iterator = vestor.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        System.out.println("-----------");
        for (String s : vestor) {
            System.out.println(s);
        }
        System.out.println("-----------");
        for (int i = 0; i < vestor.size(); i++) {
            System.out.println(vestor.get(i));
        }
        System.out.println("-----------");
        Enumeration<String> enumeration=vestor.elements();
        while (enumeration.hasMoreElements()){
            System.out.println(enumeration.nextElement());
        }

List 遍歷數組

        List<String> list = new ArrayList<String>();
        list.add("ww");
        list.add("vv");
        list.add("bb");
        for (String s :list) {
            System.out.println(s);
        }

        System.out.println("-----------");
        Iterator itor = list.iterator();
        while (itor.hasNext()){
            System.out.println(itor.next());
        }

        System.out.println("-----------");

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
LinkedList遍歷
        LinkedList<String> linkedList =new LinkedList<String>();
        linkedList.add("ff");
        linkedList.add("rr");
        linkedList.add("aa");
        for (int i = 0; i < linkedList.size(); i++) {
            System.out.println(linkedList.get(i));
        }

        System.out.println("-----------");

        Iterator iterator = linkedList.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }

        System.out.println("-----------");

        for (int i = 0; i < linkedList.size(); i++) {
            System.out.println(linkedList.get(i));
        }

 
一、ArrayList和LinkedList可想從名字分析,它們一個是Array(動態數組)的數據結構,一個是Link(鏈表)的數據結構,此外,它們兩個都是對List接口的實現。前者是數組隊列,至關於動態數組;後者爲雙向鏈表結構,也可看成堆棧、隊列、雙端隊列
二、當隨機訪問List時(get和set操做),ArrayList比LinkedList的效率更高,由於LinkedList是線性的數據存儲方式,因此須要移動指針從前日後依次查找。
三、當對數據進行增長和刪除的操做時(add和remove操做),LinkedList比ArrayList的效率更高,由於ArrayList是數組,因此在其中進行增刪操做時,會對操做點以後全部數據的下標索引形成影響,須要進行數據的移動。
四、從利用效率來看,ArrayList自由性較低,由於它須要手動的設置固定大小的容量,可是它的使用比較方便,只須要建立,而後添加數據,經過調用下標進行使用;而LinkedList自由性較高,可以動態的隨數據量的變化而變化,可是它不便於使用。
五、ArrayList主要控件開銷在於須要在lList列表預留必定空間;而LinkList主要控件開銷在於須要存儲結點信息以及結點指針信息。數據結構

相關文章
相關標籤/搜索