多维数组

多维数组

在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);
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值