-
声明数组
数据类型[] 数组名;//常用 数据类型 数组名[]; 数据类型 []数组名;
-
创建数组
-
先声明,在分配空间
数据类型[] 数组名; 数组名=new 数据类型[长度];
-
声明数组并分配空间
数据类型[] 数组名=new 数据类型[长度];
-
声明数组并赋值
数据类型[] 数组名=new 数据类型[]{元素值1,元素值2,...};
-
声明数组并赋值(简)
数据类型[] 数组名={元素值1,元素值2,...};//不能换行书写
-
-
遍历数组
for(int i=0;i<数组名.length;i++){ //通过数组名[i]操作数组元素 }
三.数组的内存结构及复制
-
数组存储在堆内存中,栈空间的数组名保存的为数组的堆内存地址
-
基本类型进行变量名相互赋值时,赋值内容为字面值
-
数组类型进行变量名相互赋值时,赋值内容为数组地址
-
数组的复制
创建新数组和原数组长度一致,将原数组中元素依次复制到新数组中
四.数组的扩容
-
数组的扩容:"大搬家"思想,创建新数组大于原数组空间,将原数组中所有元素复制到新数组,将引用(原数组名)指向新数组
-
自定义扩容后的数组,完成元素复
//对数组扩容,创建新的更大的数组 //依次复制元素 //将新数组的地址赋值给原数组的名字
-
System.arraycopy(原数组名,原数组起始下标,新数组名,新数组起始下标,复制长度);
-
java.util.Arrays.copyOf(原数组,新长度);//返回新数组
五.可变长参数
public static 返回值类型 函数名(数据类型... 参数名){
//可变长参数名=数组名,把可变长参数当成数组使用
}
函数名(值1,值2,...);
//注:可变长参数只能存在形参列表的尾部,且只存在一个
六.数组排序
- 相邻位置上的两个元素依次比较,按需(从小到大,从大到小)进行比较,交换位置
- 使用固定下标元素和其他元素依次对比,按需进行比较,确定是否交换位置,完成排序
- java.util.Arrays.sort(数组名);//默认升序
七.二维数组
-
概念:数组的元素是数组类型
-
语法:
-
先声明再分配空间
数据类型[][] 数组名; 数组名=new 数据类型[高维长度][低维长度]; //数组内部存有几个小数组---行 //数组的元素数组的长度---列
-
声明数组并分配空间
数据类型[][] 数组名=new 数据类型[高维长度][低维长度];
-
声明不规则数组
数据类型[][] 数组名=new 数据类型[高维长度][];
-
声明数组并赋值
数据类型[][] 数组名={{值1,值2,...},{值3,值4,...},{}};
-
数组遍历
for(int i=0;i<数组名.length;i++){ for(int j=0;j<数组名[i].length;j++){ //通过数组名[i][j]获取所有元素 } }
-