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

浅谈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日

相关文章

  • SpringBoot定时任务实现数据同步的方法

    这里是关于“Spring Boot定时任务实现数据同步的方法”的完整攻略。 1. 在Spring Boot中使用定时任务 在Spring Boot中,我们可以通过使用@EnableScheduling注解来开启定时任务的支持。注解需要在Spring Boot的应用主类上添加。添加之后,我们就可以使用Spring的@Scheduled注解来定义我们的定时任务了…

    Java 2023年5月20日
    00
  • 手把手教你写Maven的archetype项目脚手架

    我来为你详细讲解“手把手教你写Maven的archetype项目脚手架”的完整攻略。 什么是Maven的archetype? Maven的archetype是一种脚手架工具,它可以帮助我们快速创建符合规范的Maven项目结构,包含必要的文件和依赖,以满足特定的需求。通常来说,一个archetype文件包含了一个或多个模板(template),这些模板用来生成…

    Java 2023年5月20日
    00
  • 使用Spring AOP实现MySQL数据库读写分离案例分析(附demo)

    下面我会详细讲解“使用Spring AOP实现MySQL数据库读写分离案例分析(附demo)”的完整攻略。 简介 本文主要介绍如何利用 Spring AOP 实现 MySQL 数据库读写分离,以及涉及到的相关技术。读写分离指的是读操作和写操作分别执行在不同的 MySQL 数据库中,这样可以提高数据库的并发处理能力。 技术方案 本方案主要采用以下技术: Spr…

    Java 2023年5月20日
    00
  • 深入浅析TomCat Session管理分析

    深入浅析Tomcat Session管理分析 什么是Session管理 Session管理是指Web服务器为每个用户会话(Session)维持一个状态。在Web应用中,服务器经常需要将信息存储在会话中,例如用户登录信息等。传统的Session实现通常采用Cookie,但是这种方式存在一些弊端,比如容易被恶意攻击者劫持和侵犯隐私等。 Tomcat是一个流行的W…

    Java 2023年5月19日
    00
  • js 生成随机汉字的问题

    让我们来详细讲解一下“JS生成随机汉字的问题”。 随机生成汉字 在js中生成随机汉字,通常需要使用Unicode编码表中汉字的编码范围。根据Unicode编码表,汉字的编码范围为\u4e00到\u9fa5,因此,我们可以使用js的Math.random()函数生成一个随机数,并将其转换为汉字。 function randomChinese() { var i…

    Java 2023年6月15日
    00
  • 入门java的第一步HelloWorld

    下面是“入门Java的第一步HelloWorld”的完整攻略: 步骤一:安装Java开发工具 在进行Java编程前,需要安装Java开发工具,例如Eclipse、NetBeans等。本文以Eclipse为例进行讲解。 Eclipse下载地址:https://www.eclipse.org/downloads/ 下载后双击exe文件进行安装,安装完成后启动Ec…

    Java 2023年5月19日
    00
  • Mybatis学习笔记之动态SQL揭秘

    Mybatis 是一种流行的持久化框架,其核心是SQL映射文件。动态SQL是Mybatis的重要功能之一,可以帮助开发人员解决复杂的SQL语句拼接问题,从而提高开发速度和可维护性。本文将为您详细讲解Mybatis动态SQL的使用方法和技巧。 什么是动态SQL Mybatis的SQL语句是通过XML文件进行配置的,因此可以灵活地进行动态SQL语句的拼接。动态S…

    Java 2023年6月1日
    00
  • 详解用java描述矩阵求逆的算法

    详解用Java描述矩阵求逆的算法 算法概述 在线性代数中,矩阵求逆是一个很重要的问题,它在各种科学计算中发挥着关键作用。矩阵求逆也被用于解决多元线性回归等问题。 基本上所有矩阵求逆算法都是基于高斯-约旦变换(Gauss-Jordan elimination)来工作的,该算法旨在通过对原始矩阵进行顺序消元、列缩放和行交换等操作,从而生成一个沿着对角线对称的单位…

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