關于Java中的集合-List派系(二)? ? ? ? ? ? ? ? ?
上一篇總結(jié)了集合框架中老大Collection,這篇總結(jié)它下面的幾個小弟List派系
1.List派系
List是一個接口,是這個列表清單的頂層接口 。他下面有這些小弟
數(shù)組鏈表ArrayList,鏈表LinkedList,數(shù)組Vector
凡是List集合中的所有小弟,特點:
?A . ? ?存儲到List集合中的對象,有序排列的 123 abc
?B. ? ? 存儲的時候,和取出的時候順序一致
?C. ? ? List集合允許存儲重復對象
?D. ? ? List集合存儲的對象都有下標
//================================================
2.List接口中的方法
void add(int index, E element) 在一個指定的位置上,插入一個對象
? ? ?
Object get(int index)通過下標,獲取指定下標上的元素 。通過for循環(huán)遍歷也可以獲取集合。
Object remove(int index)通過下標,移除指定的元素 .返回的是,被刪除的那個元素?
Object set(int index, Object Element)修改指定位置上的元素 。
List subList(int fromIndex, int toIndex) 獲取集合一部分,返回新集合 subtring
listIterator() 返回List特有迭代器對象
//================================================
3.List派系的特有迭代器ListIterator
A.正向遍歷集合,逆向遍歷集合 。遍歷的過程中,可以修改集合,包括增加,刪除
B.逆向遍歷的 前提條件,正向遍歷一次
hasPrevious() == hasNext()
previous() == next()
使用List集合進行特有的逆向遍歷的案例:
//使用List集合進行特有的逆向遍歷
?private static void method_1(){
? List list = new ArrayList();
? list.add("abc1");
? list.add("abc2");
? list.add("abc3");
? list.add("abc4");
?
? ListIterator lit = list.listIterator();
? //前提條件,正向遍歷一次
? while(lit.hasNext()){
? ?System.out.println(lit.next());
? }
? System.out.println("=========================");
?
? while(lit.hasPrevious()){
? ?System.out.println(lit.previous());
? }
?}
//=====================================================
4. ArrayList類
1. 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,可變的數(shù)組
2. 增長率50%
3. 查詢快,增刪慢
4. 線程不安全,執(zhí)行效率很高
5. 需要集合存儲對象的時候,如果迭代比較頻繁,首先考慮使用ArrayList
? 增insert 刪delete 改update 查select
//=====================================================
5. Vector 類
? 這個集合的底層數(shù)據(jù)結(jié)構(gòu),是可變數(shù)組結(jié)構(gòu)
? 查詢快,增刪慢
? Vector增長率100%
? Vector集合線程安全的,執(zhí)行效率低
? 從1.2版本開始,ArrayList取代Vector
//=====================================================
6. LinkedList類
? LinkedList底層數(shù)據(jù)結(jié)構(gòu),鏈表數(shù)據(jù)結(jié)構(gòu)
? 查詢慢,增刪快
? 線程不安全,執(zhí)行效率高
? LinkedList自己特有的方法
? ?void addFirst(E e)
? ? ? ? ? 將指定元素插入此列表的開頭。
? ?void addLast(E e)
? ? ? ? ? 將指定元素添加到此列表的結(jié)尾。
? ?
? ? E removeFirst()
? ? ? ? ? 移除并返回此列表的第一個元素。
? ? E removeLast()
? ? ? ? ? 移除并返回此列表的最后個元素
? ? E getFirst()
? ? ? ? ? 返回此列表的第一個元素。
? ? E getLast()
? ? ? ? ? 返回此列表的最后一個元素。?
? ? ? ? ? ? ? ? ? ? ?