一、說明
Java 提供一個類可以解決數組的動態(tài)長度的問題北专,它就是 ArrayList 類扬舒,即泛型數組列表纤掸,也就是所謂的動態(tài)數組拨扶。使用 ArrayList 可以實時地添加元素而不用去管長度的問題。
ArrayList 屬于集合類庫茁肠,實現(xiàn)了 List 接口患民。
二、基本使用
1.聲明
ArrayList 是一個采用 類型參數 的 泛型類垦梆。需要用尖括號將類名括起來加在后面匹颤,以指定數組列表保存的元素對象類型仅孩。注意尖括號內只能是類,不能是基本數據類型印蓖,如要存儲基本數據類型辽慕,可使用對象包裝器(Integer 等)
ArrayList<String> arrList = new ArrayList<String>(); //聲明和構造一個用來保存 String 類型的動態(tài)數組
2.元素的添加與移除
使用 add 方法將元素添加到數組列表中,分為默認的末尾添加和指定順序添加赦肃。使用索引添加時溅蛉,索引后面的元素都會往后移一位。
arrList.add("first");//添加到末尾
arrList.add(3,"third");// 通過索引添加到第三位他宛,原本在第三位及后面的元素順次后移
使用 remove 方法刪除指定位置元素船侧,其后的元素將順次前移,刪除的元素將通過返回值返回厅各。
String s = arrList.remove (3);//刪除第三個元素镜撩,s = third
對數組實施插入和刪除操作的效率很低。
3.獲取數組長度
使用 size 方法獲取數組列表的實際元素長度 队塘,相當于數組的 length 方法袁梗。
4.訪問數組列表元素
ArrayList 的元素只能通過 set(替換元素) 和 get(獲取元素) 方法訪問。注意憔古,使用 set 方法設置元素時遮怜,只能替換已經存在的元素。
5.將 ArrayList 轉換為數組
使用 toArray 方法將 ArrayList 轉換為數組鸿市。
String [] arr = new String[arrList.size()];
arrList.toArray(arr);
三奈泪、擴展使用
1.長度問題
如果能夠預估數組的元素數量,可以預先設置數組大小灸芳,先分配固定空間。有兩種方法預設拜姿,分別是構造時傳入參數和 ensureCapacity 方法烙样。
ArrayList<String> aList = new ArrayList<>(100);
ArrayList<String> bList = new ArrayList<>();
bList.ensureCapacity(100);//要在數組使用前調用
兩種方法均為數組分配100個對象的空間。
ArrayList 的初始分配空間和數組不同蕊肥,ArrayList只是預留空間谒获,其內沒有元素。
如果添加時元素超過100個壁却,會再次分配100個空間批狱。這意味著如果有102個數,ArrayList的實際占用空間是200個對象的空間展东。
在長度確定之后赔硫,可以使用 trimToSize 方法將容量削減到當前尺寸。但再次添加時又會增加100個空間盐肃。
2.ArrayList 還有一些不常用的方法爪膊,如 isEmpty 判斷是否為空权悟、addAll 添加集合等,使用時參考官方文檔推盛。