数组
数组的定义:数组是存储多个变量(元素)的东西(容器),这多个变量的数据类型要一致;
一维数组的初始化
数组的初始化分为两种:静态初始化+动态初始化;
静态初始化:给定数组的值,系统确定数组的长度;
动态初始化:给定数组的长度,系统给数组元素赋值,一般赋值为0或者null。
一维数组初始化举例
静态 : 数组类型[ ] 数组名 = new 数组类型 [ ] { 元素1, 元素2,… ,元素n };
int[ ] arr = new int [ ] { 1, 2, 3, 4};
(简) int[ ] arr = { 1, 2, 3, 4};
动态 : 数组类型[ ] 数组名 = new 数组类型 [ 长度 ] ;
int[ ] arr = new int [ 3 ];
注意事项: 这两种方式,只能使用一种,不能进行动静结合
二维数组的初始化
格式1 : 数组类型 [ ] [ ] 数组名 = new 数组类型 [ m ] [ n ]; (推荐使用)
int [ ] [ ] arr = new int [ 3 ] [ 2 ];
格式2 :数据类型 [ ] 数组名 [ ] = new 数组类型 [ m ] [ n ]; (不推荐)
int [ ] arr [ ] = new arr [ m ] [ n ];
int [ ] x, y [ ] :定义了两个数组
格式3 :数据类型 数组名 [ ][ ] = new 数据类型 [ m ] [ n ];
格式4 :数据类型 [ ] [ ] 变量名 = new 数据类型 [ m ] [ ];
m表示这个二维数组有多少个一维数组,这一次没有直接给出一维数组的元素个数,可以动态的给出。
举例:
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = new int[1];
格式5 :
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}…};
简化版:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
这个格式属于静态初始化:由我们指定具体的元素值,由系统给分配长度
举例:
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
int[][] arr = {{1,2,3},{5,6},{7}};
数组元素遍历赋
打印杨辉三角形(行数可以键盘录入)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
public class MyTest4 {
public static void main(String[] args) {
/*
* 观察上面图形的规律
* 1.每一个行的第一个数和最后一个数都是1
* 2.从第三行开始 从第二列开始 这个数字等于我上一行前一列和上一行的本列之和
* */
//我们可以使用二维数组来存储上面的数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数");
int n = sc.nextInt();
int[][] arr = new int[n][n];
//我们先把每一行的第一个元素和第二个元素赋值成1
for (int i = 0; i < arr.length; i++) {
arr[i][0] = 1;
arr[i][i] = 1;
}
//算出中间元素
for (int i = 2; i < arr.length; i++) {
for (int j = 1; j <= i; j++) {
// 2. 从第三行开始 从第二列开始 这个数字等于我上一行前一列和上一行的本列之和
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
//遍历二维数组
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/14656.html