数组及其练习题:
一维数组:
// 1. 静态初始化
int arr[] = new int[]{1001, 1002, 1003, 1004}
// 2. 动态初始化
String[] arr = new String[5];
// 3. 数组元素默认初始值
整型: 0
浮点型: 0.0
char型: '0'
boolean型: false
String: null
二维数组:
// 1. 静态初始化
int[][] arr = new int[][]{{1,2,3},{4,5},{6,7,8}};
// 也可以写成int[] arr[] = new int[][]{{1,2,3},{4,5},{6,7,8}};
// 也可以写成int[] arr[] = {{1,2,3},{4,5},{6,7,8}};
// 2. 动态初始化1
String[][] arr = new String[3][2];
// 动态初始化2
String[][] arr = new String[3][];
// 备注:
int[][] arr = new int[4][5];
arr // 输出[[I@4554617c 二维
arr[1]称为外层元素 // 输出为地址值如: [I@4554617c 一维
arr[1][1]称为内层元素 // 0
int[][] arr = new int[4][];
arr[1]称为外层元素 // 输出null
arr[1][1]称为内层元素 // 报错,空指针异常
// 杨辉三角
int[][] yangHui = new int[10][];
for (int i = 0; i < yangHui.length; i++) {
yangHui[i] = new int[i + 1];
yangHui[i][0] = yangHui[i][i] = 1;
if (i > 1) {
for (int j = 1; j < yangHui[i].length - 1; j++) {
yangHui[i][j] = yangHui[i - 1][j] + yangHui[i - 1][j - 1];
}
}
}
for (int i = 0; i < yangHui.length; i++) {
for (int j = 0; j < yangHui[i].length; j++) {
System.out.print(yangHui[i][j] + " ");
}
System.out.println();
}
// 创建一个长度为6的int型数组,要求取值为1-31,同时元素值各不相同
// 方式一
int[] arr = new int[6];
for (int i = 0; i < arr.length; i++) { // [0, 1) [0, 30) [1, 31)
arr[i] = (int)(Math.random() * 30 + 1) + 1;
while (true) {
boolean flag = false;
for (int j = 0; j < i; j++) {
if (arr[i] == arr[j]) {
flag = true;
break;
}
}
if (flag) {
arr[i] = (int)(Math.random() * 30 + 1) + 1;
flag = false;
continue;
}
break;
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
// 方式二
int[] arr = new int[6];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 30 + 1) + 1;
for (int j = 0; j < i; j++) {
if (arr[i] == arr[j]) {
i--;
break;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}



