陣列擴容 java
阿新 • • 發佈:2018-11-02
程式碼
import java.util.Scanner;
public class Program01 {
private static Scanner input;
public static void main(String[] args) {
input = new Scanner(System.in);
int[] arr = new int[1];
int i = 0;
while (true) {
int nu = input.nextInt();
if (nu == 0)
break;
arr[i] = nu;
arr = newArr(arr);
i++;
}
for (int j = 0; j < arr.length; j++) {
System.out.println(arr[j]);
}
}
private static int[] newArr(int[] oldArr) {
int newLength = oldArr.length + 1;
int[] _newArr = new int[newLength];
for (int i = 0; i < oldArr.length; i++) {
_newArr[i] = oldArr[i] ;
}
return _newArr;
}
}
分析程式碼
就像上面的情況,我們需要的是一個可變的陣列,所以我們必須寫一個可以改變陣列容量的陣列,但是我們知道 Java的陣列是定容的,所以,我們只能動一些“歪腦筋”。也就是將老陣列用新陣列代替。
上面程式碼中 的newArr方法也就是起到這個作用。
先將陣列長度加1,再定義新陣列,將老陣列賦值給新陣列,最後返回新陣列。