浅谈java中的一维数组、二维数组、三维数组、多维数组

yizhihongxing

浅谈Java中的一维数组、二维数组、三维数组、多维数组攻略

在Java中,数组是用于存储同一种类型数据的连续空间,可以存储一维、二维、三维乃至多维数据。本文将详细讲解Java中的一维数组、二维数组、三维数组、多维数组的定义、初始化、遍历等操作。

一维数组

一维数组也称为向量,是最简单的一种数组结构,元素按照线性序列排列。在Java中定义一位数组的方式如下:

数据类型[] 数组名 = new 数据类型[数组大小];

其中,数据类型为数组元素的数据类型,数组名为数组的名称,数组大小为数组容量,也就是数组可以存储的元素个数。例如,以下是创建一个整型一维数组的示例:

int[] arr1 = new int[5];

在初始化数组后,可以通过下标访问并修改数组元素,下标从0开始,例如对数组第二个元素进行赋值操作:

arr1[1] = 10;

二维数组

二维数组也称为矩阵,由多个一维数组构成,可以看作是元素以行和列的形式排列。在Java中定义二维数组的方式如下:

数据类型[][] 数组名 = new 数据类型[行数][列数];

例如,以下是创建一个整型二维数组的示例:

int[][] arr2 = new int[2][3];

初始化二维数组后,可以使用双重循环遍历数组并修改其中元素的值:

for (int i = 0; i < arr2.length; i++) {
    for (int j = 0; j < arr2[i].length; j++) {
        arr2[i][j] = i + j;
    }
}

三维数组

三维数组可以看作是由多个二维数组构成,其中的元素以层、行和列的形式排列。在Java中定义三维数组的方式如下:

数据类型[][][] 数组名 = new 数据类型[层数][行数][列数];

例如,以下是创建一个整型三维数组的示例:

int[][][] arr3 = new int[2][3][4];

初始化三维数组后,可以使用三重循环遍历数组并修改其中元素的值:

for (int i = 0; i < arr3.length; i++) {
    for (int j = 0; j < arr3[i].length; j++) {
        for (int k = 0; k < arr3[i][j].length; k++) {
            arr3[i][j][k] = i + j + k;
        }
    }
}

多维数组

多维数组可以看作是由多个一维、二维或三维数组等构成,其中的元素以多维形式排列。在Java中定义多维数组的方式比较简单,只需在定义时增加一维即可。

例如,以下是一个由一维、二维、三维数组构成的多维数组定义示例:

int[][][] arr4 = new int[2][3][];
arr4[0][0] = new int[2];
arr4[0][1] = new int[3];
arr4[0][2] = new int[4];
arr4[1][0] = new int[5];
arr4[1][1] = new int[6];
arr4[1][2] = new int[7];

上述定义中,arr4是一个由两个大小为3的数组构成的数组,其中每个二级数组都有不同的大小。

示例说明1

下面的示例展示了如何创建一个存储三门科目成绩的二维数组,并用随机数初始化成绩。然后计算每个学生的平均成绩和每门课的平均成绩。

import java.util.Random;

public class ArrayExample1 {

    public static void main(String[] args) {
        int[][] scores = new int[5][3];
        Random rand = new Random();
        for (int i = 0; i < scores.length; i++) {
            for (int j = 0; j < scores[i].length; j++) {
                scores[i][j] = rand.nextInt(101);
                System.out.print(scores[i][j] + " ");
            }
            System.out.println();
        }
        double[] stuAvg = new double[5];
        double[] subjAvg = new double[3];
        for (int i = 0; i < scores.length; i++) {
            double sum = 0.0;
            for (int j = 0; j < scores[i].length; j++) {
                sum += scores[i][j];
                subjAvg[j] += scores[i][j];
            }
            stuAvg[i] = sum / scores[i].length;
        }
        for (int i = 0; i < subjAvg.length; i++) {
            subjAvg[i] /= scores.length;
        }
        System.out.println("每个学生的平均成绩:");
        for (double avg : stuAvg) {
            System.out.println(avg);
        }
        System.out.println("每门课的平均成绩:");
        for (double avg : subjAvg) {
            System.out.println(avg);
        }
    }
}

输出结果:

64 47 11 
98 58 80 
88 76 8 
20 91 82 
31 10 85 
每个学生的平均成绩:
40.666666666666664
78.66666666666667
57.333333333333336
64.33333333333333
42.0
每门课的平均成绩:
60.2
56.4
53.2

示例说明2

下面的示例演示了如何定义和初始化一个三维字符数组,并输出其中元素的值。

public class ArrayExample2 {

    public static void main(String[] args) {
        char[][][] cube = {{{'O','O','O'}, {'O','O','O'}, {'O','O','O'}},
                           {{'R','R','R'}, {'R','R','R'}, {'G','G','G'}},
                           {{'G','G','G'}, {'G','G','G'}, {'W','W','W'}},
                           {{'W','W','W'}, {'W','W','W'}, {'B','B','B'}},
                           {{'B','B','B'}, {'B','B','B'}, {'Y','Y','Y'}},
                           {{'Y','Y','Y'}, {'Y','Y','Y'}, {'O','O','O'}}};
        for (int i = 0; i < cube.length; i++) {
            System.out.print("[");
            for (int j = 0; j < cube[i].length; j++) {
                System.out.print("[");
                for (int k = 0; k < cube[i][j].length; k++) {
                    System.out.print(cube[i][j][k] + ",");
                }
                System.out.print("],");
            }
            System.out.println("]");
        }
    }
}

输出结果:

[[O,O,O],[O,O,O],[O,O,O]],
[[R,R,R],[R,R,R],[G,G,G]],
[[G,G,G],[G,G,G],[W,W,W]],
[[W,W,W],[W,W,W],[B,B,B]],
[[B,B,B],[B,B,B],[Y,Y,Y]],
[[Y,Y,Y],[Y,Y,Y],[O,O,O]],

以上就是Java中一维数组、二维数组、三维数组、多维数组的详细讲解,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈java中的一维数组、二维数组、三维数组、多维数组 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Redis分布式锁这样用,有坑?

    背景 在微服务项目中,大家都会去使用到分布式锁,一般也是使用Redis去实现,使用RedisTemplate、Redisson、RedisLockRegistry都行,公司的项目中,使用的是Redisson,一般你会怎么用?看看下面的代码,是不是就是你的写法 String lockKey = “forlan_lock_” + serviceId; RLock…

    Java 2023年4月17日
    00
  • ASP移动文件函数movefile权限不足的替代方法

    下面是详细的讲解和攻略: 问题描述 在使用ASP中的movefile函数移动文件时,有时候会出现“权限不足”的错误。这是因为movefile函数不支持跨盘符移动文件,如果目标路径与源路径不在同一个磁盘盘符下,则需要管理员权限才能执行该操作。在没有管理员权限的情况下,我们需要寻找其他方法来解决这个问题。 解决方法 使用FileSystemObject对象的Co…

    Java 2023年6月15日
    00
  • Java实现复制文件并命名的超简洁写法

    下面详细讲解一下Java实现复制文件并命名的超简洁写法的完整攻略。 1. 确定文件路径 首先,我们需要确定需要复制的文件的路径以及复制后生成文件的路径。可以使用Java中的File类来实现: File sourceFile = new File("原始文件路径"); File targetFile = new File("目标文…

    Java 2023年5月19日
    00
  • 了解在Flash中的编程工作

    了解在Flash中的编程工作是一个必要的过程,它可以帮助你学习如何使用Flash的编程工具来创建交互式的动画和应用程序。以下是一些步骤,可以帮助你开始学习Flash的编程工作。 步骤1:学习Flash编程语言 Flash编程语言可以使你直接控制Flash中的对象和操作。其中,ActionScript是Flash主要的编程语言。学习ActionScript可以…

    Java 2023年6月15日
    00
  • Java如何调用TSC打印机进行打印详解

    关于Java如何调用TSC打印机进行打印,一般可以通过以下步骤来实现: 1. 前置条件 确认TSC打印机已经按照相应的通信协议和驱动程序与计算机进行连接和配置 了解打印指令,并准备好需要打印的内容 2. 使用TSC指令打印 2.1 建立连接 在Java中使用TSC指令打印,需要借助于TSC封装好的指令集,具体步骤如下: 导入TSC指令集jar包 xml &l…

    Java 2023年5月26日
    00
  • 推荐一款 IntelliJ IDEA 神级插件,由 ChatGPT 团队开发,免费使用,堪称辅助神器!

    来源:https://blog.csdn.net/m0_64880608/article/details/130201349 什么是Bito? Bito是一款在IntelliJ IDEA编辑器中的插件,Bito插件是由ChatGPT团队开发的,它是ChatGPT团队为了提高开发效率而开发的一款工具。 ChatGPT团队是一支专注于自然语言处理技术的团队,他们…

    Java 2023年5月4日
    00
  • JDK15正式发布(新增功能预览)

    JDK15正式发布(新增功能预览)攻略 简介 JDK15是Java开发工具包的最新版本,在2020年9月15日正式发布。它引入了许多新的功能和改进,帮助Java开发人员更轻松、更高效地开发应用程序。本文将为您提供JDK15版本的新功能的详细说明和使用示例。 新增功能 1. 文本块 Java 15中引入了文本块,这允许您在代码中以更自然的方式编写多行字符串。文…

    Java 2023年5月19日
    00
  • 简单了解java ibatis #及$的区别和用法

    下面是关于“简单了解java ibatis #及$的区别和用法”的完整攻略: 什么是Java iBatis? Java iBatis(也称MyBatis)是一种Java持久层框架,它可以将Java对数据库的访问和操作抽象出来,使得Java程序员可以更加方便地访问和操作数据库。而“#”和“$”是Java iBatis中常用的参数占位符,用于动态地替换SQL语句…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部