Java List
常用類型
類型 | 特征 |
---|---|
ArrayList | 隨機訪問元素快;中間插入與刪除元素較慢;操作不是線程安全的 |
LinkedList | 中間插入與刪除操作代價較低,提供優化的順序訪問;隨機訪問元素慢 |
ArrayList 常用 API
方法 | 描述 |
---|---|
boolean add(E object) | 再 ArrayList 尾存入對象 |
void add(int location, E object) | 在 location 添加對象 |
boolean addAll(Collection<? extends E> collection) | 將一個 Collection 對象中存儲全部的對象復制並存入 |
boolean addAll(int location, Collection<? extends E> collection) | 將一個 Collection 對象中存儲全部的對象復制並存入location |
boolean contains(Object object) | 是否包對象 object |
boolean containsAll(Collection<?> collection) | 是否包含一個 Collection 對象 |
boolean isEmpty() | ArrayList 是否為空 |
E get(int location) | 獲取 location 的對象 |
E set(int location, E object) | 將某個位置的元素替換成 object |
int indexOf(Object object) | 獲取某個對象的位置(順序遍歷第一個) |
int lastIndexOf(Object object) | 獲取某個對象的位置(逆序遍歷第一個) |
int size() | 返回 ArrayList 存儲的對象數量 |
boolean remove(Object object) | 刪除存儲的某個對象 |
E remove(int lcoation) | 刪除位於 location 的對象 |
boolean removeAll(Collection<?> collection) | 刪除存儲的某個 Collection 對象 |
Object [] toArray() | ArrayList 轉數組 |
List<'E'> subList(int start, int end) | 獲取位於 start 與 end 之間的 List |
void clone() | 克隆ArrayList |
void clear() | 移除ArrayList中所有對象 |
Iterator<'E'> iterator() | 獲取該 ArrayList 對應的迭代器對象 |
ArrayList 應用示例
-
ArrayList與數組之間的轉換
// 轉數組 List<String> list = new ArrayList<>(); String[] strings = new String[list.size()]; list.toArray(strings); // 或者 String[] strings = (String[])list.toArray(new String[list.size()]); // 數組轉LIst // 法1 快速,但是以視圖形式返回,無法對數據進行刪除及添加操作; // 可用 set() 方法修改元素,但是原始List數據會隨之改變 String[] s = {"abc", "def", "ghi"}; List<String> list = java.util.Arrays.asList(s); //法 2 慢,但是新生成一個ArrayList,可對List進行操作不會對原對象產生影響 List<String> assertList = new ArrayList(); Collections.addAll(assertList, strings);
-
ArrayList遍歷方式
// 第一種,通過迭代器遍歷。即通過Iterator去遍歷。 Integer value = null; Iterator iter = list.iterator(); while (iter.hasNext()) { value = (Integer)iter.next(); } // 第二種,隨機訪問,通過索引值去遍歷。 Integer value = null; int size = list.size(); for (int i=0; i < size; i++) { value = (Integer)list.get(i); } // 第三種,for循環遍歷。 Integer value = null; for (Integer integer: list) { value = integer; }