Java 中的列表與陣列
本文將展示 Java 中陣列和列表之間的區別。陣列和列表都是 Java 中廣泛使用的資料結構;因此,我們需要了解何時使用它們。
ArrayList
是最常用的列表之一,因此,在接下來的部分中,我們將指出陣列和 ArrayLists
之間的區別。
Java 中實現語法的差異
在定義和初始化時,陣列和 ArrayList
之間存在差異。
下面給出了宣告和初始化陣列的語法。
我們首先寫出要儲存在陣列中的元素的資料型別,然後使用括號 []
和陣列名稱。我們使用 new
關鍵字初始化陣列,後跟資料型別名稱及其括號中的大小。
type[] arrayName = new type[size];
以下是宣告和初始化 ArrayList
的語法。
我們使用 new
關鍵字建立 ArrayList
物件,並傳遞要插入的資料型別,該型別返回 List
,List
是 ArrayList
使用的介面。
List<Type> listName = new ArrayList<Type>();
兩種語法的最大區別在於陣列使用原始資料型別,而 ArrayLists
使用通用資料型別。
在 Java 中 ArrayList
可以動態增長,而陣列是靜態的
當我們宣告一個陣列時,我們需要指定以後不能更改的大小,這意味著陣列是靜態的,並且具有固定的大小。在下面的示例中,我們建立一個 int
型別的陣列並將大小指定為 4。
如果我們在陣列中插入 4 個專案,它將執行,但新增另一個專案(總共 5 個專案)將在輸出中引發錯誤。
public class ExampleClass1 {
public static void main(String[] args) {
int[] intArray = new int[4];
intArray[0] = 1;
intArray[1] = 2;
intArray[2] = 3;
intArray[3] = 4;
intArray[4] = 5;
for (int i : intArray) {
System.out.println(i);
}
}
}
輸出:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4
at com.tutorial.ExampleClass1.main(ExampleClass1.java:13)
與陣列不同,ArrayList
可以動態增長而無需擔心大小。它的大小隨著其中元素的數量而增加和減少。
下面的程式包含一個 Integer
型別的 ArrayList
,我們在其中新增了一些專案。輸出顯示從列表中列印的所有元素。
import java.util.ArrayList;
import java.util.List;
public class ExampleClass2 {
public static void main(String[] args) {
List<Integer> integerList = new ArrayList<>();
integerList.add(1);
integerList.add(2);
integerList.add(3);
integerList.add(4);
for (Integer integer : integerList) {
System.out.println(integer);
}
}
}
輸出:
1
2
3
4
在 Java 中 ArrayList
有很多方法來執行操作,而陣列沒有
我們可以在陣列中新增元素,但執行其他操作(如刪除)存在限制。另一方面,我們可以使用 ArrayList
執行多項操作,例如刪除、排序等。
在示例中,我們建立了一個 ArrayList
並新增了一些元素。然後我們刪除第三個索引上的元素,值 4。
輸出顯示刪除後的元素。我們需要使用其他類在陣列中執行此操作,這使得它變得複雜。
public class ExampleClass2 {
public static void main(String[] args) {
List<Integer> integerList = new ArrayList<>();
integerList.add(1);
integerList.add(2);
integerList.add(3);
integerList.add(4);
integerList.remove(3);
for (Integer integer : integerList) {
System.out.println(integer);
}
}
}
輸出:
1
2
3
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn