廢話很少說,先上關係圖java
List是列表類型,以線性方式存儲對象。數組
List接口的三個典型實現:安全
List接口經常使用方法:bash
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess,
Cloneable, java.io.Serializable {
//版本號
private static final long serialVersionUID = 8683452581122892189L;
//默認容量
private static final int DEFAULT_CAPACITY = 10;
//空對象數組
private static final Object[] EMPTY_ELEMENTDATA = {};
//默認空對象數組
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
//元素數組,用於存放實際元素,並標記爲transient,意味着序列化的時候,此字段不會被序列化。
transient Object[] elementData;
//實際元素大小,默認爲0
private int size;
//最大數組容量
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
}複製代碼
構造函數數據結構
// 默認構造函數
ArrayList()
// capacity是ArrayList的默認容量大小。當因爲增長數據致使容量不足時,容量會添加上一次容量大小的一半。
ArrayList(int capacity)
// 建立一個包含collection的ArrayList
ArrayList(Collection<? extends E> collection)複製代碼
關鍵函數用法示例dom
public void test() {
List<String> list = new ArrayList<>();
list.add("a"); //增長元素
list.add(1, "bb"); //指定索引位置增長元素
System.out.println(list.get(0)); //獲取指定索引值的元素
System.out.println(list.size()); //獲取長度
list.set(1, "ccc"); //修改該索引值
list.remove(1); //移除指定索引值的元素
list.remove("a"); //移除指定元素
List<String> list1 = new ArrayList<>();
list1.add("zzz");
list1.add("xxx");
list.addAll(list1); //增長該collections的全部元素
for (String aList : list) {
System.out.println(aList);
}
list.removeAll(list1); //移除該collections的全部元素
}複製代碼