数组基础
1、一维数组
1、1维数组的定义和初始化
1、2一维数组的内存结构
1、3一维数组的遍历
2、二维数组
2、1二维数组的定义及初始化
2、2二维数组的内存结构
2、3二维数组的遍历
3、数组“扩容”与拷贝
参考之前博文 java:数组拷贝与“扩容”
1、一维数组
数组,是一个包含相同数据类型的集合。集合里存放的是相同类型的数据,则把这个集合称为数组。
1、1 一维数组的定义及初始化
一维数组有如下三种定义方式
(1)先声明后初始化
int arr[]; arr = new int[9];
数组中包含5个元素,每个元素的初始值都是int类型的默认值0
(2)声明的同时进行初始化方式
int arr[] = new int[]{1,2,4,56};
arr数组中包含4个元素(系统算出来的),分别是整形int 1,2,4,56(由程序控制)
(3)先声明后初始化使用的系统分配的默认值
int arr = new int[5];
系统分配了5个int大小的空间,存放5个int默认值大小的整形数字(值为0)
1、2一维数组的内存结构
1、3一维数组的遍历方式
一维数组有三种遍历方式:for循环遍历,foreach遍历,Arrays.toString()遍历
int arr[] =new int[]{1,2,4,6,8,9,0};
for (int i = 0; i <arr.length ; i++) {
System.out.println(arr[i]);
}//for循环遍历
for (int val: arr) {
System.out.println(val);
}//foreach循环遍历
System.out.println(Arrays.toString(arr));//Arrays.toString()遍历
2、二维数组
2、1 一维数组定义及初始化方式
通俗理解就是一维数组中的每一个元素类型不再是一个基本数据类型的元素,而是一个引用数据类型,分布指向一个一维数组在堆上存储的地址。
三种初始化方式
//方式一
int arr[][] = {{1,2,3},{4,5,6},{7,8,9}};//或者
int [][]arr = new int[3][3];//定义了三行三列的二维数组
//方式二
int [][]arr = new int[3][];//分别定义了每一行中的存放的元素类型,也是个一维数组
arr[0] = new int[3];
arr[1] = new int[3];
arr[2] = new int[3];
//方式三
int [][]arr = {new int[3],new int[3],new int[3]};
2、2二维数组内存结构
2、3二维数组的遍历
二维数组的遍历方式:for循环、foreach、Arrays.deepToString()遍历
int brr[][]= {{1,2,3},{4,5,6},{7,8,9}};
for (int i = 0; i <brr.length ; i++) {
for (int j = 0; j <brr[0].length ; j++) {
System.out.println(brr[i][j]);
}
}
for (int val[]: brr) {
for (int value: val) {
System.out.println(value);
}
}
System.out.println(Arrays.deepToString(brr));