Java 集合深入理解(7) ArrayList

2021-08-18 12:09:02 字數 3112 閱讀 7702

有序的(元素輸出順序與輸入順序一致)

元素可以為 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,案列解析 好好體會以下這個案例,通過...