一个刚学Java的兄弟问我:Java数组添加元素,键盘录入一个数就添加到数组
刚看到这个题就想到了ArrayList的扩容机制,ArrayList底层就是数组,每次add都是将旧数组元素复制到新数组,每次以1.5倍的方式扩容。
思路:每添加一次把原来的数组复制到一个新数组,每次数组长度加一
代码实现:
public static void main(String[] args) {
int[] arr = {};
Scanner scanner = new Scanner(System.in);
while (true){
System.out.println("请输入需要添加的元素:");
int i = scanner.nextInt();
arr = addArr(arr, i);
System.out.println(Arrays.toString(arr));
}
}
public static int[] addArr(int[] arr,int i){
int[] brr = new int[arr.length+1];
for (int j = 0; j < brr.length-1; j++) {
brr[j] = arr[j] ;
}
brr[brr.length-1] = i ;
return brr;
}