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主要控件開銷在於須要存儲結點信息以及結點指針信息。數據結構