数组的复习:
一:一维数组的使用
1.一维数组的声明和初始化
int[] arr = new int[]{1,2,3};//静态初始化
int[] arr1 = new int[5];//动态初始化
int arr2[] = new int[5];//也是正确的写法
int[] arr3 = {1,2,3}//也是正确的写法
2.如何调用数组的指定位置的元素
int[] arr = new int[]{1,2,3}
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
3.如何获取数组的长度
即:数组的属性(.length)
int[] arr4 = new int[]{1,2,3,5,9};
System.out.println(arr4.length);//结果为5
4.如何遍历数组
int[] arr5 = new int[]{1,2,5,6,8,9}
for(int i = 0;i < arr5.length;i++){
System.out.println(arr5[i]);//结果为1 2 5 6 8 9
}
5.数组元素的默认初始化值
int 型----------->0;
boolean型-------->false;
char型----------->ASCII码中的代表0的元素;
String(引用类型)---------->null;
浮点型--------->0.0;
6.数组的内存解析
7.案例:
从键盘读入学生人数跟成绩,找出最高分,并输出学生成绩等级。成绩 >= 最高分 - 10 等级为’A‘;成绩 >= 最高分 - 20 等级为’B‘;成绩 >= 最高分 - 30 等级为’C‘;其余 为’D‘。提示:先读入学生人数,根据人数创建int数组,存放学生成绩。
import java.util.Scanner;
public class ArraryTest{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入学生人数:");
int number = input.nextInt();
System.out.println("请输入" + number + "个学生成绩:");
int[] grade = new int[number];
int max = 0;
char a;
for(int i = 0;i < grade.length;i++){
grade[i] = input.nextInt();
if(max < grade[i]){
max = grade{i};
}
}
System.out.println("最高分为:" + max);
for(int i = 0;i < grade.length;i++){
if(grade{i} >= max - 10){
a = 'A';
}else if(grade[i] >= max -20){
a = 'B';
}else if(grade[i] >= max - 30){
a = 'C';
}else{
a = 'D';
}
}
System.out.println("student " + i + "成绩为 " + grade[i] + "等级为 " + a);
}
}
二:二维数组的使用
1.二维数组的声明和初始化
int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9}};//静态初始化
int[][] arr1 = new int[4][3];//动态初始化 or
int[][] arr2 = new int[4][];//动态初始化
2.如何调用数组的指定位置的元素
int[][] arr3 = new int[][]{{1,2,3},{4,5,6,5,8},{7,8,9}};
System.out.println(arr3[0][1]);//结果为2;
3.如何获取数组的长度
即:数组属性(.length)
int[][] arr3 = new int[][]{{1,2,3},{4,5,6,5,8},{7,8,9}};
int[][] arr4 = new int[4][];
System.out.println(arr4.length);//结果为4;
System.out.println(arr3.length);//结果为3;
System.out.println(arr3[1].length);//结果为5
4.如何遍历数组
int[][] arr5 = new int[][]{{1,2,3},{4,5,6,5,8,8,5},{7,8,9}};
for(int i = 0;i < arr5.length;i++){
for(int j = 0;j < arr5[i].length;j++){
System.out.println(arr5[i][j] + " ");//结果为1 2 3
// 4 5 6 5 8 8 5
// 7 8 9
}
System.out.println();
}
5.数组元素的默认初始化值
规定:二维数组分为外层数组的元素,内层数组的元素
int[][] arr6 = new int[4][3];
外层元素:arr6[0],arr6[1]等
内层元素:arr6[0][0],arr6[1][2]等
针对于初始化方式一:比如 int[][] arr = new int[4][3];
外层元素的初始值为:地址值
内层元素的初始值为:与一维数组初始化情况相同
针对于初始化方式二:比如 int[][] arr = new int[4][];
外层元素的初始值为:null
内层元素的初始值为:不能调用,否则报错
6.二维数组的内存解析
7.案例:
杨辉三角:打印10行的杨辉三角
public class YangHuiTest {
public static void main(String[] args) {
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;
for(int j = 1;j < yangHui[i].length - 1;j++){
yangHui[i][j] = yangHui[i - 1][j - 1] + yangHui[i - 1][j];
}
}
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();
}
}
}