首页 > 其他分享 >多维数组的使用(一)

多维数组的使用(一)

时间:2023-04-09 09:03:00浏览次数:39  
标签:一维 arr String int 数组 使用 多维 new

多维数组概述

Java 语言里提供了支持多维数组的语法。

如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像Excel中的表格、围棋棋盘一样。

应用举例1:

             某公司2022年全年各个月份的销售额进行登记。按月份存储,可以使用一维数组。如下:

     int[] monthData = new int[]{23,43,22,34,55,65,44,67,45,78,67,66};

             如果改写为按季度为单位存储怎么办呢?

     int[][] quarterData = new int[][]{{23,43,22},{34,55,65},{44,67,45},{78,67,66}};

应用举例2:

高一年级三个班级均由多个学生姓名构成一个个数组。如下:

String[] class1 = new String[]{"段誉","令狐冲","任我行"};

String[] class2 = new String[]{"张三丰","周芷若"};

String[] class3 = new String[]{"赵敏","张无忌","韦小宝","杨过"};

那从整个年级看,我们可以声明一个二维数组。如下:

String[][] grade = new String[][]{{"段誉","令狐冲","任我行"},{"张三丰","周芷若"},{"赵敏","张无忌","韦小宝","杨过"}};

应用举例3:

蓝框的几个元素,可以使用一维数组来存储。但现在发现每个元素下还有下拉框,其内部还有元素,那就需要使用二维数组来存储:

使用说明

 

对于二维数组的理解,可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组。

声明与初始化

声明

二维数组声明的语法格式:

//推荐
元素的数据类型[][] 二维数组的名称;

//不推荐
元素的数据类型  二维数组名[][];
//不推荐
元素的数据类型[]  二维数组名[];

例如

        //存储多组成绩
        int[][] grades;

        //存储多组姓名
        String[][] names;

格式:

int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

定义一个名称为arr的二维数组,二维数组中有三个一维数组

每一个一维数组中具体元素也都已初始化

        第一个一维数组 arr[0] = {3,8,2};

        第二个一维数组 arr[1] = {2,7};

        第三个一维数组 arr[2] = {9,0,1,6};

 

第三个一维数组的长度表示方式:arr[2].length;

注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。

举例1

int[][] arr = {{1,2,3},{4,5,6},{7,8,9,10}};//声明与初始化必须在一句完成

int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};

int[][] arr;
arr = new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};

arr = new int[3][3]{{1,2,3},{4,5,6},{7,8,9,10}};//错误,静态初始化右边new 数据类型[][]中不能写数字

举例2:

        //存储多组成绩
        int[][] grades = {
                    {89,75,99,100},
                    {88,96,78,63,100,86},
                    {56,63,58},
                    {99,66,77,88}
                };

        //存储多组姓名
        String[][] names = {
            {"张三","李四", "王五", "赵六"},
            {"刘备","关羽","张飞","诸葛亮","赵云","马超"},
            {"曹丕","曹植","曹冲"},
            {"孙权","周瑜","鲁肃","黄盖"}
        };

标签:一维,arr,String,int,数组,使用,多维,new
From: https://www.cnblogs.com/wdh01/p/17207085.html

相关文章

  • 2488. 统计中位数为 K 的子数组
    题目链接:2488.统计中位数为K的子数组方法:前缀和+哈希解题思路根据题意可知,在\(k\)是中位数的子数组中,比\(k\)大的数\(-\)比\(k\)小的数\(=\)\(0\)||\(1\)。那么将两种状态,小于\(k\)置\(-1\),大于\(k\)置\(+1\),计算数组的前缀和\(s\)。由于子数组要包含\(k\),所有左......
  • yarn的安装和使用
    安装命令:pminstall-gyarn切换源yarnconfigsetregistryhttps://registry.npm.taobao.org查看源yarnconfiggetregistry......
  • vscode launch&attach及常用插件使用必备指南
    .vscode下创建文件launch.json{//使用IntelliSense了解相关属性。//悬停以查看现有属性的描述。//欲了解更多信息,请访问:https://go.microsoft.com/fwlink/?linkid=830387"version":"0.2.0","configurations":[{"na......
  • C语言字符串的使用
    做题常常遇到和字符串相关的,发现自己对《字符串》和《字符数组》有误会,因为他们的声明太像了,我会搞混。于是我在DevC++上尝试了9种不同的声明方式,想看看什么时候才算是有效的字符串声明,都是我当前水平可能遇到的。#include<stdio.h>#include<string.h>/* 解释: 字符串和字符......
  • 108. 将有序数组转换为二叉搜索树
    题目链接:108.将有序数组转换为二叉搜索树方法:递归建树解题思路每次选取中间的元素作为根节点,递归创建左右子树,就可以保证左右子树的高度差绝对值不超过1代码/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*......
  • 1590. 使数组和能被 P 整除
    题目链接:1590.使数组和能被P整除方法:前缀和+哈希解题思路(1)要求\((sum-sunSum)\)%\(p=0\),即要求\([sum-(s[j]-s[i])]\)%\(p=0\),即\(sum\)%\(p=(s[j]-s[i])\)%\(p\),即\(s[j]\)%\(p-sum\)%\(p=s[i]\)%\(p\);(2)上述中的\(sum\)可以提前确......
  • scrapy爬虫框架(七)Extension的使用
    一、简介  Scrapy提供了一个Extension机制,可以让我们添加和扩展一些自定义的功能。利用Extension我们可以注册一些处理方法并监听Scrapy运行过程中的各个信号,做到发生某个事件时执行我们自定义的方法。  Scrapy已经内置了一些Extension,如LogStats这个Extension用于记录一些......
  • 二维数组
    在刷力扣题目是会遇到这种情况int**generate(intnumRows,int*returnSize,int**returnColumnSizes){}intnumRows:表示这传入的是一个数。int*returnSize:表示这传入的是一个数的地址。int**returnColumnSizes:表示这传入的是一个数组的地址。为什么要这么做呢?答:在......
  • 使用注解开发
    在Spring4之后,要使用注解开发必须保证aop的包导入了使用注解需要导入context约束,增加注解的支持属性注入@ComponentpublicclassUser{//@Value("alice")publicStringname;@Value("alice")publicvoidsetName(Stringname){this.name......
  • 如何在 Mybatis 中优雅地使用枚举
    前言Mybatis遇到字段为枚举时无法解析成我们想要的数据MyBatis 内置枚举转换器org.apache.ibatis.type.EnumTypeHandler 和 org.apache.ibatis.type.EnumOrdinalTypeHandlerEnumTypeHandlerMybatis中默认的枚举转换器,获取枚举中的 name 属性EnumOrdinalTypeHandler......