数组的详解版二
数组:
可以存储多个类型的容器
支持数据类型(变量–所有类型 数组–所有类型)
栈:存储的是变量,当存储使用完毕会被立即清除,不会对存储的内容赋予系统默认值
堆:存储的是对象,对象无用时会等到某个时刻被系统进行回收,会被赋予系统默认的初始值
**应用:**
**遍历(3种)** **最值(参照物)** **查找(无序,二分查找)**
数组的扩容:–>数组的大小一旦被确定则不能被改变
扩容的本质:定义新数组,根据数组之间的复制进行数组的扩容,从而达到扩容的目的
原因:数组变量名存储在栈中,将新数组的变量名赋值给了原数组,使得原数组的地址值发生了改变,从而指向了新的数组
/*
数组的扩容
*/
import java.util.Arrays;
class ArrayKuoDemo{
public static void main(String[] args){
//原数组
int arr1[]={1,2,5,2,5};
//方式一:
//新数组
int arr2[]=new int[2*arr1.length];
System.arraycopy(arr1,0,arr2,0,arr1.length);
//地址值赋给
arr1=arr2;
//扩容
System.out.println(Arrays.toString(arr1));
//方式二:
//使用简单,但是只能从头开始(下标0),不灵活
Arrays.copyOf(arr1,2*arr1.length);
System.out.println(Arrays.toString(arr1));
}
}