Java 中的 Array 可以用來儲存同個類別的資料,且 Array 建立後便無法改變長度,如果想在 Array 中增加元素,會需要創一個全新的 Array。
宣告一個 Array 的方法是先寫 Array 中元素的資料類別,再加上中括弧 [ ],指派的元素則是要裝在大括弧 { }
//Example: String[ ] 儲存多個 string 的 Array
String[] animal = {"dog", "cat", "fish", "bird"};
創建 Array 時也可以先不指派值,但必須給予長度且不得變動。
String[] human = new String[5]; // 指定可以存放 5 個元素
Array 支援直接使用 [ index ] 存取與修改元素,但無法操作超出長度的元素。
// 讀取元素 array[index]
System.out.println(animal[0]);
//Out: dog
// 修改元素
animal[0] = "elephant";
System.out.println(animal[0]);
//Out: elephant
ArrayList 是一個可以調整大小的 Array,沒有固定大小的限制,使用時以 ArrayList<datatype> 宣告新的 ArrayList。
// datatype 為 array 裡的元素
ArrayList<String> names = new ArrayList<String>();
如果要以 Primitive Data Types 作為 ArrayList 的元素,需要使用 Wrapper Class ,像是 ArrayList<Integer> 而不能用 int。
ArrayList<Integer> grades = new ArrayList<Integer>();
ArrayList 新增元素使用 add(element) 即可在 ArrayList 尾端添加元素。但 ArrayList 為有序集合,如果有在指定位置添加元素,一樣可以利用 add() 並指定添加位置的索引,如 add(index, element) 即可添加元素於指定位置。
ArrayList<String> names = new ArrayList<String>();
// 新增元素 add(element)於尾端
names.add("Jake");
names.add("Bob");
System.out.println(names);
// Out: [Jake, Bob]
// 新增元素 add(index, element) 於指定位置
names.add(1, "Gary");
System.out.println(names);
// Out: [Jake, Gary, Bob]
ArrayList 並不支援以 [ ] 訪問元素 ,需要調用 get(index) 取得指定索引的元素。
// 讀取元素 get(index)
System.out.println(names.get(1));
// Out: Gary
ArrayList可以以 set(index, element) 修改指定位置的元素。
// 修改元素 set(index, element)
// 不得用來增加 ArrayList 的長度
names.set(2, "Leo");
System.out.println(names);
// Out: [Jake, Gary, Leo]
ArrayList 以 remove(index) 刪除指定位置的元素。
// 刪除元素 remove(index)
names.remove(0);
System.out.println(names);
// Out: [Gary, Leo]