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

news2024/11/15 23:18:09

文章目录

  • 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,第二维的长度(也就第一维的每个元素的长度)是3
		
		int[][] 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 = 3
			for(int j = 0; j < arr[i].length; j++) {
				res += arr[i][j];
			}
		}
		System.out.println(res);
		
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

教资面试多烂才不合格 教师资格证面试难度分析

教资面试是否合格&#xff0c;主要取决于考生的表现是否符合教师职业要求和教育教学能力。以下是一些可能导致教资面试不合格的表现&#xff1a; 对教育事业缺乏热情&#xff0c;对所教授的学科不感兴趣&#xff0c;或者对教育工作没有正确的认知。 对学生的关注不足&#xf…

C++学习day3

目录 作业&#xff1a; 1> 思维导图 2>设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 效果图…

【ICer的脚本练习】shell的三剑客:grep/sed/awk

系列的目录说明请见:ICer的脚本练习专栏介绍与全流程目录_尼德兰的喵的博客-CSDN博客 前言 大大小小的脚本我们写了几个了,在上一篇我们借助bashrc简单了解了bash语言的一些语法和组织规则。这一篇呢我们还是回到shell简单看下三个常用命令,毕竟脚本也可以视为复杂的命令尤…

c++运算符

文章目录 运算符位运算符类型转换 运算符 #include<iostream> using namespace std;int main() {// 算术运算符cout << "1 2 " << 1 2 << endl; cout << "1 2 - 3 * 4 " << 1 2 - 3 * 4 << endl;short a…

mfoc-hardnested在visual studio2022编译

1、点击mfoc-hardnested.sln 2、没有clang LLVM (clang-cl) (未安装) 打开installer 点击修改: 单个组件中搜索clang &#xff0c;安装即可 3、编译 4、main函数 5、mfoc-hardnested.exe使用

v-on事件处理指令;简写@事件名

一、v-on 给元素&#xff08;标签&#xff09;绑定事件监听器 oninput、onclick、onchange、onblur等 1、 完整方式v-on:事件名“函数/方法” 2、简写方式事件名“函数/方法”&#xff0c;注意符号不能加冒号“&#xff1a;” input /click/change/blur ..... 代码如下&#xf…

为什么不建议使用SELECT * ?

“不要使用SELECT ”几乎已经成为数据库使用的一条金科玉律&#xff0c;就连很多公司也明确表示不得使用作为查询的字段列表&#xff0c;更是让这条规则拥有了权威的加持。 为什么不建议直接使用SELECT *&#xff1f;我们总得搞清楚这其中的原因吧&#xff0c;不要别人说不建议…

vue3 组件v-model绑定props里的值,修改组件的值要触发回调

很早之前就写了&#xff0c;一直没写篇博客记录下 <select v-model"typeVal" />const emit defineEmits([update:type]); const props defineProps({type: { type: String, default: }, });const typeVal computed({get() {return props.type;},set(value…

Flutter:open_file打开本地文件报错问题

相关插件及版本&#xff1a; open_file: ^3.2.1 问题&#xff1a; 项目中一直用的这个插件&#xff0c;突然发现在安卓高版本不能正常使用&#xff0c;报权限问题permissionDenied&#xff0c;断点调试提示相关权限是MANAGE_EXTERNAL_STORAGE&#xff0c;申请权限之后还是不行&…

PDF有限制不能复制怎么办?

大家现在接触PDF文件越来越多&#xff0c;有的时候在网上下载的PDF文件打开之后&#xff0c;发现选中文字之后无法复制。甚至其他功能也都无法使用&#xff0c;这是怎么回事&#xff1f;该怎么办&#xff1f; 当我们发现文件打开之后&#xff0c;编辑功能无法使用&#xff0c;很…

探索视觉系统工作原理,聚焦机器人应用“新视界”

原创 | 文 BFT机器人 01 视觉系统&#xff1a;机器人的“眼睛” 视觉系统是一个非常复杂的系统&#xff0c;包括照明系统、镜头、摄像系统和图像处理系统。机器视觉系统主要由三部分组成&#xff1a;图像的获取、图像的处理和分析、输出或显示。 从功能上看&#xff0c;典型的…

Allegro批量剪断走线操作

在用Allegro设计 PCB过程中,有时候由于原理图改动,导致布局的改动。这就会导致走完的线要重新走,对于差分对因为前半部分的走线是不用重新走的。那就可以使用剪断后面部分的线,然后删除,提高走线的效率。那如何批量剪断走线呢? (1)选择菜单Manufacture→Drafting→Dele…

ROS2学习(六)Bag回放使用plotjugger

Plotjugger Plotjugger是一个类似rqt_plot的可视化工具&#xff0c;但PlotJuggler拥有更强大和好用的功能。你可以导入文本文件让它显示文本文件中的数据&#xff0c;可以导入csv等各种格式的文件&#xff0c;支持画出数据曲线2. Bag回放 使用Plotjugger 可以导入ros的bag包…

docker pull 拉取镜像报错

报错信息&#xff1a;Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit 简单理解就是拉取镜像失败&#xff0c;外部原因&…

HDLbits: Lfsr5

我的错误写法&#xff0c;半成品&#xff0c;完全错误&#xff1a; module top_module(input clk,input reset, // Active-high synchronous reset to 5h1output [4:0] q ); dff dff_1(clk, 0 ^ q[0],q[4]);dff dff_2(clk, q[4] ,q[3]);dff dff_3(clk, q[3] ^ q[0] ,q[2]);…

2023年中国棋牌桌市场规模及行业前景:更具创意和功能是未来趋势[图]

棋牌桌行业是指涉及棋牌类游戏的桌面制造、销售和相关服务的产业&#xff0c;它包括生产和销售各种类型的棋牌桌&#xff0c;如象棋桌、扑克桌、麻将桌等&#xff0c;以及提供与这些游戏相关的配件和设备。 棋牌桌行业分类 资料来源&#xff1a;共研产业咨询&#xff08;共研网…

Android多线程学习:多线程同步

一、多线程 多线程就是指一个进程中同时有多个线程正在执行。 二、多线程优缺点&#xff1a; 优点&#xff1a; 1、提高程序运行效率&#xff0c;如同时上传多个图片&#xff1b; 2、耗时操作放子线程执行&#xff0c;提高主线程执行效率&#xff0c;无需等待。 缺点&#…

【Spring MVC研究】聊聊web绑定器(WebDataBinder、@InitBinder)

文章目录 1. 绑定器的作用2. 使用方式&#xff08;测试代码&#xff09;InitBinder3. 相关的几个核心类的真实类型4. 原理4.1. 正向推理4.2. 反向推理4.3. 正向反向推理结合分析4.4. 重点来了&#xff08;如果前后衔接是接4.3章节&#xff09;4.4.1. InitBinder注解的注册4.4.2…

vue学习-12路由组件的基本使用

vue的路由是vue,js官方的路由管理器&#xff0c;其主要用于构建单页应用程序&#xff0c;允许你通过定义路由来管理不同页面之间的导航。 1.引入路由 在使用vue的路由之前&#xff0c;一般我们在创建vue项目的时候&#xff0c;是可以选择添加路由的&#xff0c;只要你选择了y…

antd树型表格的逐级展开折叠(每次展开都只展开到当前未展开的最小层级,每次折叠都只折叠到当前未折叠的最大层级)

需求有些变态&#xff0c;我们用一段话和一张图来演示下 效果如下&#xff1a; 如遇到每级展开层级不一致的&#xff0c;如【2级2】展开到第3级&#xff0c;那此时点击展开&#xff0c;所有已展开的不动&#xff0c;将未展开到第3级的其他元素全部展开到第3级 效果如下&…