1. 程式人生 > >陣列擴容 java

陣列擴容 java

程式碼

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,再定義新陣列,將老陣列賦值給新陣列,最後返回新陣列。