news 2025/12/22 7:16:13

【Java数组】--快速掌握二维数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Java数组】--快速掌握二维数组

个人主页

文章目录

    • 前言
    • 一、二维数组
      • 1.1 什么是二维数组
      • 1.2 二维数组的声明
      • 1.3 使用
    • 二、多维数组
    • 三、三种初始化方式
      • 3.1 静态初始化
        • 3.1.1 语法
        • 3.1.2 怎么使用?
      • 3.2 动态初始化
        • 3.2.1 语法
        • 3.2.2 怎么使用?
      • 3.3 默认初始化
    • 四、数组的内存模型
      • 4.1 一维数组
        • 4.1.1 没有给元素赋值时
      • 4.2 二维数组
      • 4.3 Java内存
    • 五、总结

前言

在Java编程中,二维数组和多维数组是处理表格数据、矩阵运算、图像处理等复杂结构数据的重要工具。本文将像你介绍二维数组和多维数组,以及一些拓展帮助你快速理解。

一、二维数组

1.1 什么是二维数组

二维数组可以理解为一个表格,由行和列组成,或者看作是“数组的数组”。本质上是一维数组的数组,每个元素都是一个一维数组的引用。

1.2 二维数组的声明

// 声明数组数据类型[][]数组名;// 声明同时初始化数据类型[][]数组名=new数组类型[行数][列数];// 可以使用 但是不推荐数据类型 数组名[][];

1.3 使用

只说这些没用,还是得自己上手试一试

publicclassArrayDemo01{publicstaticvoidmain(String[]args){// 普通声明int[][]array;// 初始化array=newint[3][4];// 声明同时初始化int[][]array1=newint[3][4];// 赋值array1[0][1]=1;// 第一行一列array1[2][3]=2;// 第三行第四列// 遍历二维数组for(int[]ints:array1){for(intanInt:ints){System.out.print(anInt+"\t");}System.out.println();}}}

二、多维数组

其实跟二维数组一样,三维数组可以看作是“二维数组的数组”,在空间数据处理、3D图形等领域有广泛引用。

publicclassArrayDemo02{publicstaticvoidmain(String[]args){// 创建三维数组int[][][]array=newint[2][3][4];intcount=0;// 给数组里按顺序从0开始赋值for(inti=0;i<array.length;i++){for(intj=0;j<array[i].length;j++){for(intk=0;k<array[i][j].length;k++){array[i][j][k]=count++;}}}// for (int[][] ints : array) {// for (int[] ints2 : ints) {// for (int int3 : ints2) {// System.out.print(int3 + " ");// }// System.out.print(" ");// }// System.out.println();// }// 遍历数组for(inti=0;i<array.length;i++){System.out.println("第"+(i+1)+"层:");for(intj=0;j<array[i].length;j++){for(intk=0;k<array[i][j].length;k++){System.out.printf("%3d ",array[i][j][k]);}System.out.println();}System.out.println();}}}

总的来说,二维数组和多维数组还是挺简单的,但是要理解它们。

三、三种初始化方式

不管是一维数组还是多维数组都是一样的

3.1 静态初始化

静态初始化是指在创建数组的时候就指定数组元素的值,可以用在已知数组元素值的时候。

3.1.1 语法
数据类型[]数组名=new数据类型[]{元素1,元素2,元素3,...};// 简写数据类型[]数组名={元素1,元素2,元素3,...};
3.1.2 怎么使用?
publicclassArrayDemo03{publicstaticvoidmain(String[]args){// 静态初始化String[]array={"张三","李四","王五","赵六","钱七","老八"};// 遍历for(Stringints:array){System.out.print(ints+" ");}}}

3.2 动态初始化

动态初始化是指只指定数组的长度,不指定具体元素值,直接由系统为每个元素分配默认值。适合已知数组长度但元素需要在运行时确定。

3.2.1 语法
数据类型[]数组名=new数据类型[数组长度];
3.2.2 怎么使用?
publicclassArrayDemo04{publicstaticvoidmain(String[]args){int[]arr=newint[10];for(intints:arr){System.out.print(ints+" ");// 没有声明元素值,所以全部是0;}}}

3.3 默认初始化

动态初始化中包含默认初始化

  • 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式隐式初始化
数据类型默认值
byte0
short0
int0
long0L
float0.0f
double0.0d
char‘\u0000’
booleanfalse
引用类型null

四、数组的内存模型

4.1 一维数组

4.1.1 没有给元素赋值时

4.2 二维数组

4.3 Java内存


五、总结

Java 数组作为最基础的容器类数据结构,是我们处理批量同类型数据的核心工具。从基础语法到高级应用,掌握数组的本质和使用技巧,不仅能夯实 Java 编程的基础,更能为后续学习集合框架(如 ArrayList、HashMap)、并发编程、IO 流等内容铺平道路。

⭐ 如果这对你有帮助,不妨收藏和分享一下!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/15 20:24:52

Laravel 13多模态文档实战指南(9大核心功能全曝光)

第一章&#xff1a;Laravel 13多模态文档的核心演进Laravel 13 引入了革命性的多模态文档系统&#xff0c;标志着框架在开发者体验和生态集成上的重大飞跃。该系统不再局限于传统的 Markdown 或 PHPDoc 注解&#xff0c;而是支持结构化文本、交互式代码示例、嵌入式可视化图表以…

作者头像 李华
网站建设 2025/12/15 20:24:05

客户来一单就走人?先搞懂这 3 个复购率关键指标!

先说句实在话&#xff1a; 客户来一单就走人&#xff0c;大部分时候不是客户“无情”&#xff0c;是我们根本没看对数。很多老板一谈复购&#xff0c;就上来问&#xff1a; “搞点活动吧&#xff1f;” “要不要弄个会员等级&#xff1f;” “要不要发点优惠券&#xff1f;”这…

作者头像 李华
网站建设 2025/12/15 20:20:42

SQL 注入基础:手工注入流程(判断注入点→爆库→爆表→爆数据)

目录 合规免责声明 手工注入核心流程 一、为什么要学手工 SQL 注入&#xff1f; 二、前置准备&#xff1a;靶场环境配置 2.1 环境要求 2.2 核心原理铺垫 三、手工注入全流程实战&#xff08;6 大步骤&#xff09; 步骤 1&#xff1a;判断注入点 —— 确认漏洞是否存在 …

作者头像 李华
网站建设 2025/12/15 20:19:37

【PHP 8.6 JIT性能迷局】:为什么你的FPM进程吃掉2GB内存?

第一章&#xff1a;PHP 8.6 的 JIT 内存占用PHP 8.6 即将引入对 JIT&#xff08;Just-In-Time&#xff09;编译器的进一步优化&#xff0c;但随之而来的内存占用问题也引起了开发者关注。JIT 在提升执行效率的同时&#xff0c;会将部分 PHP 脚本编译为原生机器码&#xff0c;这…

作者头像 李华
网站建设 2025/12/15 20:19:22

RIGOL示波器自研ASIC芯片在DS4000系列中的应用

在高端示波器领域&#xff0c;ASIC&#xff08;Application-SpecificRIGOL示波器IntegratedRIGOL示波器Circuit&#xff0c;专用集成电路&#xff09;芯片的应用已经非常普遍。ASIC芯片可以针对特定应用进行优化设计&#xff0c;从而在性能、功耗和成本等方面实现最佳平衡。近年…

作者头像 李华
网站建设 2025/12/15 20:17:15

农业IoT系统总是掉线?,PHP设备心跳机制设计全解析

第一章&#xff1a;农业IoT系统总是掉线&#xff1f;PHP设备心跳机制设计全解析在农业物联网&#xff08;IoT&#xff09;系统中&#xff0c;传感器设备常部署于偏远农田或温室环境&#xff0c;网络稳定性差、供电波动大&#xff0c;导致设备频繁掉线。若缺乏有效的在线状态监控…

作者头像 李华