ArrayList 泛型數組列表:Core Java 5.3

菱形語法<>

ArrayList<String> ss = new ArrayList<>(); // 不會報warning
ArrayList<String> ss = new ArrayList(); // 會報warning : unchecked conversion
new 操作符後的ArrayList的<>中不是必須指明泛型的類型,這種情況下稱爲菱形語法。
new ArrayList<>();可以賦值給一個變量(如上)、作爲某個方法的實參傳遞到方法、或者從某個方法返回,編譯器會檢查變量、參數或方法返回的泛型類型,然後將這個類型放在<>中。

ArrayList :: set

void  set (int  index , E  obj) 
 // 用obj覆蓋指定位置的原有內容,注意index的值必須在0~size-1之間。

注意,如下代碼會報錯:java.lang.IndexOutOfBoundsException;

ArrayList<String> ss = new ArrayList<>(12);
ss.set(0,"hi");

因爲此時ss.size()==0,列表中還沒有任何元素

ArrayList也提供了在中間插入數據的方法,且會自動將元素後移

ArrayList :: add

boolean add(E obj); // 在列表末尾追加一個元素
void add(int index, E obj);  // 在指定位置插入一個元素,此位置及其之後的元素依次向後移動一個位置

因爲插入和刪除需要逐個移動一部分元素,因此效率較低。add(int index, E obj); remove(int index)方法如果頻繁使用,建議使用鏈表:LinkedList。

ArrayList適用於隨機查詢的場景,效率相對高

ArrayList可以利用來實現不定長度的數組

ArrayList<String> ss = new ArrayList<>();
ss.add("1");
...
String [] sArr = new String[ss.size()];
ss.toArray(sArr);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章