初始容量
private static final int default_capacity = 10;
空陣列
private static final object empty_elementdata = {};
預設容量
private static final object defaultcapacity_empty_elementdata = {};
transient 的作用:某些被修飾的成員屬性變數不被序列化
transient object elementdata;
private int size;
有引數構造給初始值
public arraylist(int initialcapacity) else if (initialcapacity == 0) else
}
無參構造
public arraylist()
複製引數
public arraylist(collection<? extends e> c) else
}
根據size區更改容量
public void trimtosize()
}
擴充容量
public void ensurecapacity(int mincapacity)
}
計算容量
private static int calculatecapacity(object elementdata, int mincapacity)
return mincapacity;
}
private void ensurecapacityinternal(int mincapacity)
private void ensureexplicitcapacity(int mincapacity)
擴充容量
private void grow(int mincapacity)
private static int hugecapacity(int mincapacity)
查詢陣列位置
public int indexof(object o) else
return -1;
}
倒著遍歷
public int lastindexof(object o) else
return -1;
}
轉殖引數
public object clone() catch (clonenotsupportedexception e)
}
輸入位址得到值
public e get(int index)
private void rangecheck(int index)
public e set(int index, e element)
新增引數
public void add(int index, e element)
根據索引移除引數
public e remove(int index)
移除集合引數
public boolean remove(object o)
} else
}return false;
}
清空
public void clear()
ArrayList底層分析
arraylist實現於list randomaccess介面。可以插入空資料,也支援隨機訪問。相當於動態陣列,其中最重要的兩個屬性分別是 elementdata,以及size大小。在呼叫add 方法的時候 public boolean add e e 如果是呼叫add index,e 在指定位置新...
ArrayList底層實現
modifier and type method and description boolean add e e 將指定的元素追加到此列表的末尾 void add int index,e element 在此列表中的指定位置插入指定的元素。boolean addall collection exte...
ArrayList的底層實現
1 底層是object陣列,叫做 elementdata 2 預設容量10,叫做 default capacity,不是初始容量 3 如果不指定初始容量,剛new出來的list如果沒有儲存任何物件,則容量為0,但是如果指定了初始容量,剛開始size也是為0 arraylistlist new arr...