数组
什么是数组
相同类型的数据按顺序组成的引用数据类型
一维数组:
声明:类型 数组名[];
类型[] 数组名;
创建:类型[] 数组名 = new 类型[数组长度];
类型 数组名[] = new 类型[数组长度];
初始化:类型[] 数组名 = {,,,,,} 元素之间用英文逗号(,)隔开
类型 数组名[] = {,,,,,,}
数组元素的引用
数组名[下标] 数组的下标是从0开始的
二维数组(特殊的一维数组)
声明:类型 数组名[][];
类型[][] 数组名;
类型[] 数组名[];
创建:类型[][] 数组名 = new 类型[a][b];
类型 数组名[][] = new 类型[a][b];
类型[] 数组名[] = new 类型[a][]
将二维数组看成一个表格,其中a表示二维数组的行数,b表示列数.
在定义时,可以只定义二维数组的行数,如下
int[][] a = new int[3][];//创建一个二维数组 a[0] = new int[2];//二维数组第一行有2列 a[1] = new int[3];//二维数组第二行有3列 a[2] = new int[4];//二维数组第三行有4列
初始化:类型[] 数组名 = {{,,},{,,},{,,}} ; 元素之间用英文逗号(,)隔开
类型 数组名[] = {{,,},{,,},{,,}} ;
类型[] 数组名[] ={{,,},{,,},{,,}} ;
数组排序:
public static void main(String[] args) { //冒泡排序,将数组从小到大排序 int[] a = {34,53,12,32,56,17}; int temp; for(int i = 1;i < a.length;i++) { for(int j = 0;j < a.length - i;j++) { if(a[j] > a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } //遍历数组 for(int x:a) { System.out.print(x + " "); } }
二维数组处理成绩问题
public static void main(String[] args) { // 在一个二维数组中存放了三名学生的语文和数学成绩,分别求出语文和数学总成绩的平均分 int[][] score = new int[3][2]; int sum1 = 0; int sum2 = 0; // double ave; Scanner sc = new Scanner(System.in); /* * for(int i = 1;i < 4;i++) { System.out.println("请输入第" + i + "个同学的语文成绩:"); * Scanner sc1 = new Scanner(System.in); score[i -1][0] = sc1.nextInt(); * System.out.println("请输入第" + i + "个同学的数学成绩:"); Scanner sc2 = new * Scanner(System.in); score[i -1][1] = sc1.nextInt(); } */ for (int i = 1; i < 4; i++) { for (int j = 0; j < 2; j++) { if (j == 0) { System.out.println("请输入第" + i + "个同学的语文成绩:"); } else { System.out.println("请输入第" + i + "个同学的数学成绩:"); } score[i - 1][j] = sc.nextInt(); } } for (int i = 0; i < score.length; i++) { sum1 += score[i][0]; sum2 += score[i][1]; } System.out.println("语文总成绩为:" + sum1); System.out.println("语文的平均分为:" + (sum1 / 3.0)); System.out.println("数学总成绩为:" + sum2); System.out.println("数学的平均分为:" + (sum2 / 3.0)); }