数组扩容 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,再定义新数组,将老数组赋值给新数组,最后返回新数组。

猜你喜欢

转载自blog.csdn.net/qq_40435621/article/details/83474337