关于java的多维数组

关于java的多维数组

在前面的文章中,我们了解了数组的使用,我们之前所了解的数组是一维数组,本篇文章我们来了解一下二维数组,多维数组😀

一、二维数组

  • 首先我们知道一维数组的声明和创建的方式是。
int array = new int[数组的长度];
  • 二维数组的声明和创建方式是这样的。
int array[][] = new int[2][3]; //这里的长度只是用于举例。
  • 二维数组其实可以看成,是数组的数组,二维数组就是一个特殊的一维数组,每个元素都是一个一维数组😀。

在这里插入图片描述

  • 解析:上述的int [2] [3] 可以理解为两行三列的数组,也就是数组的嵌套,大家可以理解一下。

  • 光看文字可能难以理解,我们直接用代码去理解🤔。

public class Demo
{
    public static void main(String[] args) 
    {
        //四行两列
        /*
        1,2  array[0]
        2,3  array[1]
        3,4  array[2]
        4,5  array[3]
         */
        int[][] array = {{1,2},{2,3},{3,4},{4,5}};

        System.out.println(array[0]);
    }
}

1、首先我们声明了一个二维数组array。

2、我们为array赋值,遵循上面说的4行两列的规则,就是4个小数组,每个小数组中有两个元素。

3、我们直接输出一下array[0],但是输出的结果是一个对象,就是一个数组。

[I@1b6d3586

进程结束......

4、我们可以用之前写过的输出数组元素方法,来取出数组中的元素,先来回忆一下输出数组的方法。

public class Demo
{
    public static void main(String[] args) 
    {
		printArrays();
    }
    
    //输出数组的方法
    public static void printArrays(int[] arrays)
    {
        for(int i = 0; i<array.length;i++)
        {
            System.out.print(array[i]+"\t");
        }
    }
}

5、我们用这个方法再输出一下array[0]😀

public class Demo
{
    public static void main(String[] args) 
    {

        int[][] array = {{1,2},{2,3},{3,4},{4,5}};

        printArrays(array[0]);
    }

    public static void printArrays(int[] arrays)
    {
        for (int i = 0; i < arrays.length; i++)
        {
            System.out.print(arrays[i]+"\t");
        }
    }
}
1 2
    
进程结束......

6、我们再来用正常方式输出一下二维数组中的元素。

public class Demo
{
    public static void main(String[] args) 
    {

        int[][] array = {{1,2},{2,3},{3,4},{4,5}};

        System.out.println(array[0][0]);
        System.out.println(array[0][1]);
    }
}

我们可以看到,因为定义的是二维数组,如果只输出一维数组,程序会默认输出的是一个对象,如果输出的也是二维数组,就可以正常输出。

1
2

进程结束.......

二、多维数组

我们上面了解了二维数组,同理,我们直接展示三维数组😀

public class Demo
{
    public static void main(String[] args) 
    {

        int[][] array = {{{1,2},{2,3}},{{3,4},{4,5}}};

        System.out.println(array[0][0][0]);
        System.out.println(array[0][0][1]);
    }
}

我们执行以代码,可以看到,输出的结果。

1
2

进程结束.......

四维数组也是同理,都是依次叠加的。

我们也可以直接输出以下数组的长度,这样更加便于理解😀

public class Demo
{
    public static void main(String[] args) 
    {

        int[][] array = {{{1,2},{2,3}},{{3,4},{4,5}}};

        System.out.println(array.length);
        System.out.println(array[0].length);
        System.out.println(array[0][0].length);
    }
}

我们执行以代码,可以看到,输出的结果。

2
2
2

三、循环输出多维数组

我们之前写过输出一位数组中元素的方法,我们下面来写一个输出多维数组的方法

public class Demo
{
    public static void main(String[] args) 
    {
    	int[][] array = {{1,2},{2,3},{3,4},{4,5}};
    	
		for(int i = 0; i<array.length;i++) //循环先输出外层
        {
        	for(int j = 0; j<array[i].length;j++) //嵌套循环输出里层
            System.out.print(array[i][j]+"\t");
        }
    }
}

我们执行以下上述代码,输出的结果就是遍历了二维数组中的元素。

1	2	2	3	3	4	4	5	

进程结束.......

总结

我们在日常生活中写代码,其实二维数组已经完全够用了,但是学一个东西就要全面一些,多维数组在这里可以理解就好,后边的文章中我们会说到面向对象,这个是我们最常用,最本质,也是最关键的东西😀

RainBow Brackets

在这里像小伙伴们偷偷介绍一个Idea工具里面,好用的插件

在这里插入图片描述

这个插件可以,让我们的括号,大括号小括号区分颜色,可以让我们一眼就看出来位置,不至于偶尔误删了一个括号找不到在什么地方😊

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java面试——框架篇

1、Spring框架中的单例bean是线程安全的吗&#xff1f; 所谓单例就是所有的请求都用一个对象来处理&#xff0c;而多例则指每个请求用一个新的对象来处理。 结论&#xff1a;线程不安全。 Spring框架中有一个Scope注解&#xff0c;默认的值就是singleton&#xff0c;单例的。一…

[算法应用]dijkstra算法的应用

先看一眼原始dijkstra算法&#xff0c;参考自dijkstra算法C实现_c实现djikstra-CSDN博客 分为三步 找到当前最优的把当前最优的&#xff0c;不参与后面的更新逐个比较是否更新 dijkstra算法的应用 题目大概是要从图上找一条权值不减的路径&#xff0c;且要经过最多的点。 所以…

【普中开发板】基于51单片机的简易密码锁设计( proteus仿真+程序+设计报告+讲解视频)

基于51单片机的简易密码锁设计 1.主要功能&#xff1a;资料下载链接&#xff1a; 实物图&#xff1a;2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单 【普中】基于51单片机的简易密码锁设计 ( proteus仿真程序设计报告讲解视频&#xff09; 仿真图proteus8.16(有低版本) 程…

数据结构——栈(Stack)

目录 1.栈的介绍 2.栈工程 2.1 栈的定义 2.1.1 单链表实现栈 2.1.2 数组实现栈 2.1.2.1 静态数组栈 2.1.2.2 动态数组栈 2.2 栈的函数接口 2.2.1 栈的初始化 2.2.2 栈的数据插入&#xff08;入栈&#xff09; 2.2.3 栈的数据删除&#xff08;出栈&#xff09; 2.2.…

Kafka_02_Producer详解

Kafka_02_Producer详解 ProducerProducerRecordSend&Close实现原理ProducerInterceptorSerializerPartitioner 事务 Producer Producer(生产者): 生产并发送消息到Broker(推送) Producer是多线程安全的(建议通过池化以提高性能)Producer实例后可发送多条消息(可对应多个P…

组合数据(Python实现)

一、主要目的&#xff1a; 1&#xff0e;熟悉组合数据的类型。 2&#xff0e;掌握列表、元组、字典、集合等组合数据的创建、访问方法。 3&#xff0e;掌握组合数据推导式的使用方法 4&#xff0e;熟悉组合数据的常见应用。 二、主要内容和结果展示&#xff1a; 1. 使用两…

OpenCV中实现图像旋转的方法

OpenCV中实现图像旋转的方法 函数&#xff1a;cv2.flip() 功能&#xff1a;水平或者垂直翻转 格式&#xff1a;dst cv2.flip(src,flipCode[,dst]) 参数说明&#xff1a; src&#xff1a;输入图像 dst&#xff1a;和原图像具有相同大小、类型的目标图像。 flipCode&#…

Python小细节之Gui图形化界面库的对比和选择(一分钟版)

引言 我想要把打包的python程序变得好看 交互起来变得简单 遂 图形化界面 然 相关的库有很多 所以 对比&#xff01; 开整 8个图形化界面库 在Python中&#xff0c;有多种图形用户界面&#xff08;GUI&#xff09;库可以用来创建丰富的图形化应用程序。以下是一些主要的图…

竞赛练一练 第23期:NOC大赛每日一练,python题目刷题第8天,包含答案解析

题目来自:NOC 大赛创客智慧编程赛项Python 复赛模拟题(二) NOC大赛创客智慧编程赛项Python 复赛模拟题(二) 第一题: 编写一个成绩评价系统,当输入语文、数学和英语三门课程成绩时,输出三门课程总成绩及其等级。 (1)程序提示用户输入三个数字,数字分别表示语文、数学、…

3.1 数据链路层概述

目录 3.1 数据链路层概述3.1.1 关于数据链路层什么是数据链路从协议栈看数据链路层数据链路层信道类型 3.1.2 三个基本问题封装成帧透明传输差错控制循环冗余检验CRC&#xff08;Cyclic Redundancy Check&#xff09;原理 3.1 数据链路层概述 3.1.1 关于数据链路层 什么是数据…

odoo17 | 模型视图继承

前言 Odoo的强大之处在于它的模块化。模块专门用于满足业务需求&#xff0c;但模块也可以彼此交互。这对于扩展现有模块的功能非常有用。例如&#xff0c;在我们的房地产场景中&#xff0c;我们希望在常规用户视图中直接显示销售人员的属性列表。 但是在讨论特定的Odoo模块继…

HackTheBox - Medium - Linux - UpDown

UpDown UpDown 是一台中等难度的 Linux 机器&#xff0c;暴露了 SSH 和 Apache 服务器。在Apache服务器上&#xff0c;有一个Web应用程序&#xff0c;允许用户检查网页是否已启动。服务器上标识了一个名为“.git”的目录&#xff0c;可以下载以显示目标上运行的“dev”子域的源…

GA算法简介

GA算法简介 前言一、GA是什么二、GA简介1.思想2.流程3.过程 前言 今天学习一下优化中非常出名的遗传(GA)算法 &#xff0c;它的起源可是来自达尔文的生物进化论。 一、GA是什么 百科定义&#xff1a;遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;最早是…

Java多线程技术11——ThreadPoolExecutor类的使用1-备份

1 概述 ThreadPoolExecutor类可以非常方便的创建线程池对象&#xff0c;而不需要程序员设计大量的new实例化Thread相关的代码。 2 队列LinkedBlockingQueue的使用 public class Test1 {public static void main(String[] args) {LinkedBlockingQueue queue new LinkedBlocki…

四则运算 C语言xdoj20

问题描述&#xff1a; 输入两个整数和一个四则运算符&#xff0c;根据运算符计算并输出其运算结果&#xff08;和、差、积、商、余之一&#xff09;。注意做整除及求余运算时&#xff0c;除数不能为零。 输入说明&#xff1a; 使用scanf()函数输入两个整数和一个运算符&#xf…

【好书推荐】深入理解现代JavaScript

目录 推荐理由内容简介本书阅读对象为什么推荐这本书&#xff0c;看大佬们怎么说总结 T. J. Crowder是一位拥有30年经验的软件工程师。在他的整个职业生涯中&#xff0c;他至少有一半时间是在使用JavaScript从事开发工作。他经营着软件承包和产品公司Farsight Software。他经常…

工业协议转换网关:打破通信壁垒,实现设备互联

在工业自动化领域&#xff0c;各种设备和系统间的通信协议不尽相同&#xff0c;这给不同设备间的集成和数据交互带来了挑战。工业协议转换网关作为一种解决这一问题的关键设备&#xff0c;能够实现不同协议间的转换和数据传输&#xff0c;打破通信壁垒&#xff0c;提高设备的协…

2.8 EXERCISES

如果我们想使用每个线程来计算向量加法的一个输出元素&#xff0c;那么将线程/块索引映射到数据索引的表达式是什么&#xff1f; 答&#xff1a;C 假设我们想用每个线程来计算向量加法的两个&#xff08;相邻&#xff09;元素。将线程/块索引映射到i&#xff08;由线程处理的…

SpringSecurity集成JWT实现后端认证授权保姆级教程-数据准备篇

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法 &#x1f492; 公众号&#xff1a;知识浅谈 &#x1f525;网站…

进阶学习——Linux系统安全及应用

目录 一、系统安全加固 1.账号安全基本措施 1.1系统账号清理 1.1.1延伸 1.2密码安全控制 1.3命令历史限制 1.4终端自动注销 二、使用su命令切换用户 1.用途及用法 2.密码验证 3.限制使用su命令的用户 4.查看su操作记录 5.sudo&#xff08;superuse do&#xff09;…