List特有的方法:
- 增: add(index,element) ; add(index , Collection); push(element)
- 刪:remove(index)
- 改:set(index,element)
- 查:get(index) ; subList(fromIndex,toIndex) ; listIterator() ; indexOf() ;
ArrayList:
原理:底層使用數組結構 ; 默認長度爲10的數組,如果插入的數據超過數組長度,需要rehashing,新建數組長度爲原來的1.5倍 , 然後將原有數據放入 。
特點:查詢速度較塊,添加或刪除較慢 ; 線程不同步 ;
特有方法:
ListIterator 迭代器:
al.add("java01");
al.add(1,"java04"); //在index=1 處插入元素
al.remove(1);
al.set(1,"java07");
System.out.println(al.get(1));
al.indexOf("java03")
List sub = al.subList(0,2)
LinkedList:
原理:底層使用的是鏈表結構;
特點:查詢較慢,添加或刪除較塊
特有方法:
* JDK1.6出現了下面的替代方法
* offerFist() , offerLast() 添加一個元素 (offer 提供)
* peekFist() , peekLast() 此方法返回此列表的第一個元素,則返回null如果此列表爲空 (peek 偷看)
* pollFirst() , pollLash() 獲取並移除第一個元素;如果不存在,返回null ; 推薦使用poolFirst()而不是removeFirst() (poll 截掉)
vector:
原理:底層是數組結構 ;
特點:線程同步 ;和ArrayList類似