一、数组的使用
使用方式1——动态初始化数组
No1:一步初始化
数据类型[] 数组名 = new 数据类型[大小];
int n = 10;
int[] dp = new int[n];
return dp[0];
//上面两句代码可合并为
return new int[0];
No2:分两步初始化
第一步:声明数组
数据类型[] 数组名;也可以数据类型 数组名[];
第二步:创建数组
数组名 = new 数据类型[大小]
int n = 10;
int[] dp;
dp = new int[n];
return dp[0];
//上面两句代码可合并为
return new int[0];
使用方式2——静态初始化数组
数据类型[] 数组名 = {元素值,元素值…}
int[] dp = {1, 2};
return dp;
//上面两句代码可合并为
return new int[]{1, 2};
二、数组赋值机制
1) 基本数据类型赋值,这个值就是具体的数据,而且相互不影响。
2) 数组在默认情况下是引用传递,赋的值是地址。
三、冒泡排序
int n = 10;
int[] arr = new int[n];
for (int i = 0; i < arr.length - 1; i++) {//外层循环是arr.length - 1次
for (int j = 0; j < arr.length - 1 - i; j++) {//arr.length - 1 - i 次比较
if (arr[j] > arr[j + 1]) {//如果前面的数>后面的数,就交换
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
四、数组使用的注意事项
1、数组是多个相同类型数据的组合,实现对这些数据的统一管理
2、数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
3、数组创建后,如果没有赋值,有默认值
| boolean | byte | short | int | long | float | double | char | String |
| false | 0 | 0 | 0 | 0 | 0.0 | 0.0 | \u0000 | null |
4、使用数组的步骤
- 》声明数组并开辟空间
- 》给数组各个元素赋值
- 》使用数组
5、数组的下标是从0开始的。
6、数组下标必须在指定范围内使用,否则报:下标越界异常
7、数组属引用类型,数组类型数据是对象(object)
五、二维数组
使用方式1——动态初始化数组
No1:一步初始化
类型[][] 数组名 = new 类型[大小][大小];
int n = 10;
int[][] dp2 = new int[n][];
return dp[0][0];
//上面两句代码可合并为
return new int[0][0];
No2:分两步初始化
第一步:先声明
类型 数组名[][];
第二步:再定义(开辟空间)
数组名 = new 类型[大小][大小];
int n = 10;
int[][] dp;
dp = new int[n][];
return dp[0][0];
//上面两句代码可合并为
return new int[0][0];
注意:
1、二维数组定义式时,行数必须给出,列数可以不给出
2、二维数组:实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不相同(列数不等的二维数组)。
使用方式2——静态初始化数组
类型 数组名[][] = {{值1,值2...},{值1 ,值2...}...} ;
int[][] dp = {{1}, {1, 2}};
return dp;
//上面两句代码可合并为
return new int[][]{{1}, {1, 2}};
3、三种赋值方式
//第一种方式:定义的同时大括号直接复制
int[][] array1 = {{1, 3, 1}, {1, 5, 1}, {4, 2, 1}};
//第二种方式:先定义数组大小,然后分别赋值
int[] array2[] = new int[3][3];//定义数组维度(数组定义时两个中括号可以分开,你知道吗?)
for (int i = 0; i < array2.length; i++) {
for (int j = 0; j < array2[0].length; j++) {
array2[i][j] = i + j;//分别赋值
}
}
//第三种方式:第二维的长度可以动态申请
int[][] arr3 = new int[5][];//五行的长度
for (int i = 0; i < arr3.length; ++i) {
arr3[i] = new int[i + 1]; //列的长度每次都变化。每次都要重新申请空间(长度)
for (int j = 0; j < arr3[i].length; ++j)
arr3[i][j] = i + j;
}
注:第二维的长度可以动态申请
备注:
以上若有明显错误的地方,可以私信我哦,谢谢~
876





