有序的(元素輸出順序與輸入順序一致)
元素可以為 null
效率高
占用空間更小
transient object elementdata
private static final object defaultcapacity_empty_elementdata = {};
private static final object empty_elementdata = {};
private static final int default_capacity = 10;
private int size;
private static final int max_array_size = integer.max_value - 8;
//初始為空陣列
public arraylist()
//根據指定容量,建立個物件陣列
public arraylist(int initialcapacity) else if (initialcapacity == 0) else
}//直接建立和指定集合一樣內容的 arraylist
public arraylist(collection<? extends e> c) else
}
public boolean add(e e)
//在指定位置新增乙個元素
public void add(int index, e element)
//新增乙個集合
public boolean addall(collection<? extends e> c)
//在指定位置,新增乙個集合
public boolean addall(int index, collection<? extends e> c)
public void ensurecapacity(int mincapacity)
}private void ensurecapacityinternal(int mincapacity)
ensureexplicitcapacity(mincapacity);
}private void ensureexplicitcapacity(int mincapacity)
private void grow(int mincapacity)
private static int hugecapacity(int mincapacity)
e elementdata(int index)
//獲取
public e get(int index)
//修改
public e set(int index, e element)
//根據位置刪除
public e remove(int index)
//刪除某個元素
public boolean remove(object o)
} else
}return false;
}//內部方法,「快速刪除」,就是把重複的**移到乙個方法裡
//沒看出來比其他 remove 哪兒快了 - -
private void fastremove(int index)
//保留公共的
public boolean retainall(collection<?> c)
//刪除或者保留指定集合中的元素
private boolean batchremove(collection<?> c, boolean complement) finally
if (w != size)
}return modified;
}//清楚全部
public void clear()
public boolean contains(object o)
//遍歷,第一次找到就返回
public int indexof(object o) else
return -1;
}//倒著遍歷
public int lastindexof(object o) else
return -1;
}
public object toarray()
public t toarray(t a)
public static t copyof(u original, int newlength, class<? extends t> newtype)
private class listitr extends itr implements listiterator
public boolean hasprevious()
public int nextindex()
public int previousindex()
@suppresswarnings("unchecked")
public e previous()
public void set(e e) catch (indexoutofbound***ception ex)
}public void add(e e) catch (indexoutofbound***ception ex)
}}
int i=0, n=list.size(); i < n; i++)
list.get(i);
for (iterator i=list.iterator(); i.hasnext(); )
i.next();
list list = collections.synchronizedlist(new arraylist(...));
JAVA 深入理解 IO
定義 如果乙個類是用來完成程式和裝置之間的資料傳輸,則這個類有乙個特殊的稱謂叫 流 流和類的關係 流一定是類,但是類不一定是流。分類 輸入流 輸出流 位元組流 字元流 原始流 包裹流 常用流 的介紹 四大基本抽象流 inputstream outputsream reader writer 位元組流...
深入理解List集合框架
前言 講講什麼是集合框架?集合框架是為表示和操作集合而規定的一種統一的標準的體系結構。任何集合框架都包含三大塊內容 對外的介面 介面的實現和對集合運算的演算法。沒學集合框架之前我們儲存多個資料是採用陣列實現的,但是我們要建立陣列的話先要初始化陣列容量 int arr new int 10 現在設定陣...
深入理解Java多型機制
目錄 1,多型的概念?2,存在的條件?3,案列解析?4,應用場景?1,多型的概念 父類引用指向子類物件,通俗點就是,在編譯時不繫結是什麼方法,根據你傳進來的值,是什麼就會執行什麼。2.存在條件 第一,要有繼承 第二,要有方法的重寫 第三,父類引用指向子類物件 3,案列解析 好好體會以下這個案例,通過...