数组是一种数据结构,在Java中用来存储同一类型的集合。
数组的特点:
- 数组的地址是连续的
- 数组的地址开头是从0开始的
- 可以通过数组的下标来获取数组
- 数组在构建是需要给定长度,数组的长度不可变
一、 数组的扩容
由于数组的长度是不可变的,那么就会给我们造成一个问题,既当我们给数组添加数据满了以后就不能在添加了
那么我们现在就来解决一下这个问题:解决数组长度不可变问题
解决思路
1.我们只需要重新见一个数组,新的数组的长度是原来数组长度+1,然后将数组当中的值传递
2.给新数组,老数组的句柄指向新数组的堆内存空间
public static void main(String[] args) {
//定义数组及长度
int[] arr=new int[5];
//给数组赋值
for(int i = 0; i < arr.length; i++){
arr[i]=i;
}
//输出扩容前的数组
System.out.println("扩容前:"+Arrays.toString(arr));
//创建一个数组,新数组的长度是原数组的两倍
int[] brr=new int[arr.length*2];
//原数组当中的数据复制到新数组当中去
for (int i = 0; i < arr.length; i++) {
brr[i] = arr[i];
}
//新数组替换原数组
arr = brr;
//输出扩容后的数组
System.out.println("扩容后:"+Arrays.toString(arr));
}
输出结果: