多维数组
在Java中,实际上并没有真正的多维数组,所谓的多维数组,就是把某个数组作为另个数组的元素来用。
二维数组的声明
数据类型[][] 数组名; 数据类型 数组名[][];
【几维数组,就需要有几个对应的中括号】
二维数组的创建
语法:
数组名=new 数据类型[表示二维数组的长度][表示每个一维数组有几个元素];
例如:
int [][] nums=new int[3][5];
在创建二维数组时,必须指定二维数组的长度;第二个中括号中的值不是必须的,如果没有明确声明,则把每个一维数组中的元素个数,作为一维数组的长度。
二维数组的初始化
静态初始化
例如:int[][]nums={{1,2,3},{4,5,6},{7,8,9}};
二维数组的长度,由数组中一维数组的个数来决定。
package com.bdit;
/*
二维数组 静态初始化
*/
public class Test14 {
public static void main(String[] args) {
int[][]nums={{1,2,3},{4,5,6},{7,8,9}};
System.out.println(nums.length);
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums[i].length;j++){
System.out.println(nums[i][j]);
}
}
}
}
动态初始化
就是根据数组的下标赋值
package com.bdit;
/*
二维数组动态初始化
*/
public class Test15 {
public static void main(String[] args) {
int[][]nums1=new int[2][2];
//根据下标赋值
nums1[0][0]=10;
nums1[0][1]=20;
nums1[1][0]=40;
nums1[1][1]=50;
System.out.println(nums1[0][0]);
//声明多维数组
int[][]nums;
//创建二维数组对象
nums=new int[2][];
//动态初始化,就是根据下标
nums[0]=new int[2];
nums[0][0]=20;
nums[0][1]=30;
nums[1]=new int[2];
nums[1][0]=40;
nums[1][1]=50;
for (int i = 0; i < nums.length; i++) {//每循环一次,得到的是一个一维数组
for(int j=0;j<nums[i].length;j++){//循环一维数组
System.out.println(nums[i][j]);
}
}
}
}
二维数组练习
从键盘输入三组成绩,每组成绩包括(语文、数学,英语),把每一组成绩中最高和最低的输出,并且统计出三组成绩中,最高的和最低的。
package com.bdit;
import java.util.Scanner;
public class Test8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double[][] num = new double[3][3];
//输入三组成绩
for (int i = 0; i < num.length; i++) {
System.out.println("请输出第"+(i+1)+"组(语文、数学、英语)的成绩:");
for (int j = 0; j < num[i].length; j++) {
if(j==0){
System.out.println("请输入语文成绩:");
}else if(j==1){
System.out.println("请输入数学成绩:");
}else{
System.out.println("请输入英语成绩:");
}
num[i][j] = sc.nextDouble();
}
}
double max = num[0][0];
double min = num[0][0];
for (int i = 0; i < num.length; i++) {
double max2=num[i][0];
double min2=num[i][0];
for (int j = 0; j < num[i].length; j++) {
//判断每组中最大值
if (max2 < num[i][j]) {
max2 = num[i][j];
}
//判断每组中最小值
if (min2 > num[i][j]) {
min2 = num[i][j];
}
//判断三组中最大值
if (max < num[i][j]) {
max = num[i][j];
}
//判断三组中最小值
if (min > num[i][j]) {
min = num[i][j];
}
}
System.out.println("第"+(i+1)+"组的最大值是:"+max2+",最小值是:"+min2);
}
System.out.println("三组成绩中的最大值是:" + max);
System.out.println("三组成绩中的最小值是:" + min);
}
}
1224

被折叠的 条评论
为什么被折叠?



