是的,Java數組可以進行動態擴容。在Java中,數組的大小是固定的,但我們可以使用System.arraycopy()
方法或者ArrayList
等容器類來實現動態擴容。
如果你想直接操作數組并實現動態擴容,可以使用System.arraycopy()
方法。這個方法可以將一個數組的元素復制到另一個數組中,如果目標數組的大小不足以容納所有源數組中的元素,那么目標數組會自動擴容。以下是一個簡單的示例:
public class DynamicArray {
public static void main(String[] args) {
int[] array = new int[3];
array[0] = 1;
array[1] = 2;
array[2] = 3;
System.out.println("Original array: " + java.util.Arrays.toString(array));
// 動態擴容數組
array = resizeArray(array, 5);
System.out.println("Resized array: " + java.util.Arrays.toString(array));
}
public static int[] resizeArray(int[] originalArray, int newSize) {
if (newSize < 0) {
throw new IllegalArgumentException("New size must be non-negative");
}
int[] newArray = new int[newSize];
System.arraycopy(originalArray, 0, newArray, 0, Math.min(originalArray.length, newSize));
return newArray;
}
}
然而,在實際開發中,我們通常使用ArrayList
等容器類來實現動態擴容,因為它們提供了更簡單、更高效的方法來處理動態數組。以下是使用ArrayList
的示例:
import java.util.ArrayList;
public class DynamicArray {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
System.out.println("Original ArrayList: " + arrayList);
// 動態擴容ArrayList
arrayList.add(4);
System.out.println("Resized ArrayList: " + arrayList);
}
}
在這個示例中,我們使用ArrayList
來存儲整數,當需要添加更多元素時,ArrayList
會自動擴容。