【java学习】多维数组(10)

文章目录

  • 1. 二维数组


1. 二维数组

二维数组[][]:数组中的数组
格式1(动态初始化):int[][] arr = new int[3][2];

解释说明:

  1. 定义了名称为arr的二维数组
  2. 二维数组中有3个一维数组
  3. 每个一维数组中有2个元素
  4. 一维数组的名称分别为arr[0],arr[1],arr[2]
  5. 给第一个一维数组1脚表位赋值为78写法是:arr[0][1]=78;

格式2(动态初始化):int[][] arr = new int[3][];

解释说明:

  1. 二维数组中有3个一维数组
  2. 每个一维数组都是默认初始化值null (注意:区别格式1)
  3. 可以对这个三个一维数组分别进行初始化
    如:arr[0] = new int[3]; arr[1] = new int[1]; arr[2] = new int[2]

:这种int[][] arr = new int[][3];是非法定义

格式3(静态初始化):int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

解释说明:

  1. 定义一个名称为arr的二维数组,二维数组中有三个一维数组
  2. 每个一维数组中具体元素也都已初始化
  3. 第一个一维数组arr[0] = {3,8,2};
  4. 第二个一维数组arr[1] = {2,7};
  5. 第三个一维数组arr[2] = {9,0,1,6};
  6. 第三个一维数组的长度表示方式:arr[2].length

注意1:特殊写法情况:

int[] x,y[];    //x是一维数组, y是二维数组。
//相当于 int[] x; int[] y[];

对比一维数组和二维数组声明方式:

//一维数组:
int[] x 或者 int x[]
//二维数组:
int[][] y 或者 int[] y[] 或者 int y[][]

注意2:java中多维数组不必都是规则矩阵形式

例子如下
代码:

public class Test1 {public static void main (String[] args) {int[][] ii = new int[][] {{1,2},{4,3}};int[][] ii0 = new int[2][3];  //第一位部分的长度是2,第二维的长度(也就第一维的每个元素的长度)是3int[][] ii1 = new int [2][]; //只定义第一位的长度,第二维不定义System.out.println(ii[1][0]);   // 输出 4}
}

练习题
在这里插入图片描述
int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};
获取arr数组中的所有元素的和。使用for的嵌套循环即可。

答案
解法1:

public class Test1 {public static void main (String[] args) {int[][] arr = new int[][] {{3,8,2},{2,7},{9,0,1,6}};int len = arr.length;int res = 0;for(int i = 0; i < len; i++) {int[] arr0 = arr[i];int ilen = arr0.length;  //二维数组的长度for(int j = 0; j < ilen; j++) {res += arr0[j];}}System.out.println(res);}
}

运行结果:
在这里插入图片描述

解法2:

public class Test1 {public static void main (String[] args) {int[][] arr = new int[][] {{3,8,2},{2,7},{9,0,1,6}};int res =  0;for(int i = 0; i < arr.length; i++) {   // arr.length = 3for(int j = 0; j < arr[i].length; j++) {res += arr[i][j];}}System.out.println(res);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/152979.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亘古难题——前端开发or后端开发

一、引言 前端开发 前端开发是创建WEB页面或APP等前端界面呈现给用户的过程&#xff0c;通过HTML&#xff0c;CSS及JavaScript以及衍生出来的各种技术、框架、解决方案&#xff0c;来实现互联网产品的用户界面交互。 前端开发从网页制作演变而来&#xff0c;名称上有很明显的时…

遥感云大数据在灾害、水体与湿地领域典型案 例实践及 GPT 模型应用

近年来遥感技术得到了突飞猛进的发展&#xff0c;航天、航空、临近空间等多遥感平台不断增加&#xff0c;数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量猛增&#xff0c;遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…

MM-Camera架构-ProcessCaptureRequest 流程分析

文章目录 processCaptureRequest\_3\_41.1 mDevice1.2 mDevice->ops->process\_capture\_request1.3 hardware to vendor mct\_shimlayer\_process\_event2.1 mct\_shimlayer\_handle\_parm2.2 mct\_shimlayer\_reg\_buffer processCaptureRequest_3_4 sdm660的摄像头走…

C++设计模式-享元(Flyweight)

目录 C设计模式-享元&#xff08;Flyweight&#xff09; 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-享元&#xff08;Flyweight&#xff09; 一、意图 运用共享技术有效地支持大量细粒度的对象。 二、适用性 一个应用程序使用了大量的对象。完全由…

基于matlab统计Excel文件一列数据中每个数字出现的频次和频率

一、需求描述 如上表所示&#xff0c;在excel文件中&#xff0c;有一列数&#xff0c;统计出该列数中&#xff0c;每个数出现的次数和频率。最后&#xff0c;将统计结果输出到新的excel文件中。 二、程序讲解 第一步&#xff1a;选择excel文件&#xff1b; [Filename, Pathn…

自然语言处理(NLP)的开发框架

自然语言处理&#xff08;NLP&#xff09;领域有许多开源的框架和库&#xff0c;用于处理文本数据和构建NLP应用程序。以下是一些常见的NLP开源框架及其特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合…

基于差分进化优化的BP神经网络(分类应用) - 附代码

基于差分进化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于差分进化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.差分进化优化BP神经网络3.1 BP神经网络参数设置3.2 差分进化算法应用 4.测试结果…

20231005使用ffmpeg旋转MP4视频

20231005使用ffmpeg旋转MP4视频 2023/10/5 12:21 百度搜搜&#xff1a;ffmpeg 旋转90度 https://zhuanlan.zhihu.com/p/637790915 【FFmpeg实战】FFMPEG常用命令行 https://blog.csdn.net/weixin_37515325/article/details/127817057 FFMPEG常用命令行 5.视频旋转 顺时针旋转…

Jupyter notebook怎么设置自动跳转问题

1.点击开始&#xff0c;就可以看到Jupyter&#xff0c;然后点击 2.结果就这样&#xff1a; 3你可以复制地址到浏览器&#xff0c;结果&#xff1a; 但是这么做很麻烦&#xff0c;所以有没有更好的办法呢&#xff1f;当然有下面就开始介绍 1.打开cmd(winr,输入cmd),输入以下命令…

JMeter 做接口性能测试,YYDS!

简介 本文写给想了解性能测试和JMeter的小白&#xff0c;适合对这两者了解很少的同学们&#xff0c;如果已经有使用经验的请绕道&#xff0c;别浪费时间:-) 我们将介绍JMeter的使用场景&#xff0c;如何安装、运行JMeter&#xff0c;以及开始一个最最简单的测试。 你还徘徊在…

LeetCode 1277. 统计全为 1 的正方形子矩阵【动态规划】1613

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

近期分享学习心得3

1、全屏组件封装 先看之前大屏端的监控部分全屏代码 整块全屏代码 常规流是下面这种 //进入全屏 function full(ele) {//if (ele.requestFullscreen) {// ele.requestFullscreen();//} else if (ele.mozRequestFullScreen) {// ele.mozRequestFullScreen();//} el…

BUUCTF [MRCTF2020]Ez_bypass1

这道题全程我都是用bp做的 拿到题目 我们查看页面源代码得到 代码审计 我们要用get传入id和gg两个参数&#xff0c;id和gg的值要求不能相等&#xff0c;但是id和gg的md5强比较必须相等 if(isset($_GET[gg])&&isset($_GET[id])) {$id$_GET[id];$gg$_GET[gg];if (md5($…

Direct3D网格(一)

创建网格 我们可以用D3DXCreateMeshFVF函数创建一个"空"网格对象 &#xff0c;空网格对象是指我们指定了网格的面片总数和顶点总数&#xff0c;然后由该函数为顶点缓存、索引缓存和属性缓存分配大小合适的内存&#xff0c;之后即可手工填入网格数据。 HRESULT WINA…

计算机专业毕业设计项目推荐14-文档编辑平台(SpringBoot+Vue+Mysql)

文档编辑平台&#xff08;SpringBootVueMysql&#xff09; **介绍****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以及模式&#xff0c;在编写的…

【C++设计模式之解释器模式:行为型】分析及示例

简介 解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为型设计模式&#xff0c;它提供了一种解决问题的方法&#xff0c;通过定义语言的文法规则&#xff0c;解释并执行特定的语言表达式。 解释器模式通过使用表达式和解释器&#xff0c;将文法规则中的句子逐…

提高工作效率!本地部署Stackedit Markdown编辑器,并实现远程访问

文章目录 1. docker部署Stackedit2. 本地访问3. Linux 安装cpolar4. 配置Stackedit公网访问地址5. 公网远程访问Stackedit6. 固定Stackedit公网地址 StackEdit是一个受欢迎的Markdown编辑器&#xff0c;在GitHub上拥有20.7k Star&#xff01;&#xff0c;它支持将Markdown笔记保…

【计算机基础】Git系列3:常用操作

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

C语言之动态内存管理_柔性数组篇(2)

目录 柔性数组的特点 柔性数组的使用 动态内存函数增容柔性数组模拟实现 柔性数组的优势 今天接着来讲解一下柔性数组知识。 柔性数组的特点 C99中&#xff0c;结构中的最后一个元素允许是未知大小的数组&#xff0c;这就叫做【柔性数组】成员。 结构体中最后一个成员未…

node中的crypto模块指南

node中的crypto模块指南 加密操作可能很棘手&#xff0c;以至于付费的加密服务公司的存在只是为了确保在代码库中正确实现加密操作。好消息是&#xff0c;只需学习一些知识&#xff0c;我们就可以使用 Node 的内置加密模块免费进行适当的加密。 在本指南中&#xff0c;我们将…