【Java宝典】——二维数组的寻宝之旅

news2025/2/23 7:25:17

二维数组

二维数组的创建和打印

数据类型[ ] [ ] 数组名称 = new 数据类型[行数][列数]{初始化数据};
import java.util.Arrays;

public class DyadicArray {

    // 二维数组的创建和打印
    public static void main(String[] args) {
        
        // 直接初始化一个二维数组,数组的值为1, 2, 3 和 4, 5, 6
        int[][] array = {{1, 2, 3}, {4, 5, 6}};
        
        // 使用 new 关键字显式创建一个二维数组,并同时进行初始化,数组的值为1, 2, 3 和 4, 7, 88
        int[][] array1 = new int[][]{{1, 2, 3}, {4, 7, 88}};
        
        // 创建一个二维数组,行数为2,列数为3,数组的默认值为0
        int[][] array2 = new int[2][3];  // 默认情况下,int数组元素为0

        // 打印二维数组的内容,使用 Arrays.deepToString() 递归打印多维数组
        System.out.println(Arrays.deepToString(array));  
        System.out.println("__________________________");

        // 打印另一个二维数组的内容
        System.out.println(Arrays.deepToString(array1));  
        System.out.println("__________________________");

        // 打印未初始化的二维数组(其中的元素为默认值0)
        System.out.println(Arrays.deepToString(array2));  
    }
}

打印结果:
在这里插入图片描述


法1:通过循环语句打印数组

import java.util.Arrays;

public class DyadicArray {
     //二维数组利用循环打印
     public static void main(String[] args) {
         int [][] array= {{1,2,3,4},{6,2,3,4}};
         //循环每一行
         for (int i = 0; i < 2; i++) {
             for (int j = 0; j < 4; j++) {
                 System.out.print(array[i][j]+" ");
             }
             System.out.println();
         }
     }
}

打印结果:
在这里插入图片描述


📣二维数组其实是特殊的一维数组

在这里插入图片描述

public class DyadicArray {

    public static void main(String[] args) {
        int[][] array = {{1,2,3},{4,5,6}};

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

输出结果:
在这里插入图片描述
由上面的输出结果我们可以得出:其实二维数组的本质就是一个大的一维数组array,里面包含着两个小的一维数组。由此我们可以将上面的循环打印二维数组的语句修改为如下样式:

import java.util.Arrays;

public class DyadicArray {

    public static void main(String[] args) {
        int [][] array = {{1,2,3},{4,5,6}};
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j]+" ");
            }
            System.out.println();

        }
    }
 }

打印结果:
在这里插入图片描述


法2:通过for -each语句打印

import java.util.Arrays;

public class DyadicArray {

    public static void main(String[] args) {
        int [][] array = {{1,2,3},{4,5,6}};
        //利用for-each遍历数组
        //首先,循环遍历每一个二维数组里面的一维数组
        // --> 冒号左边的是我们在二维素组里面遍历的每一个一维数组
        // --> 冒号右边是二维数组
        for(int [] OneArray : array){
            //其次,循环遍历一维数组里面的每一个元素
            // --> 冒号左边的是一维数组里面的每一个元素
            // --> 冒号右边的是每一个一维数组
            for(int x : OneArray) {
                System.out.print(x + " ");
            }
            System.out.println();
        }
    }
    }

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


二维或多维数组的打印用Arrays库里面的deepToString关键字

        //二维数组或则是多维数组的打印用deepToString
        String ret = Arrays.deepToString(array);
        System.out.println(ret);

打印结果:
在这里插入图片描述


二维数组可省略列,不可省略行

在这里插入图片描述
若将二维数组省略的每一行进行打印结果会是报空指针的错误。


但是不规则的二维数组可以通过创建对象new进行打印

public class DyadicArray2 {
    public static void main(String[] args) {
        int[][] array = new int[2][]; // 创建一个2行的二维数组,此时列数未知(不规则数组)

        // 对每一行数组进行初始化,指定每一行的列数
        array[0] = new int[3]; // 第一行初始化为3列
        array[1] = new int[5]; // 第二行初始化为5列

        // 使用嵌套循环遍历二维数组
        for (int i = 0; i < array.length; i++) { // 外层循环遍历行
            for (int j = 0; j < array[i].length; j++) { // 内层循环遍历列
                System.out.print(array[i][j] + " "); // 打印当前元素,并在元素之间添加空格
            }
            System.out.println(); // 每一行打印完毕后换行
        }
    }
}

打印结果:
在这里插入图片描述


二维数组的循环打印

public class DyadicArray3 {
    public static void main(String[] args) {
        int[][] arr ={
                {1,2,3,4},
                {5,6,7,8},
                {11,2,4,5}
        };

        for (int i = 0 ; i < arr.length; i++){
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }

    }

}

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

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

相关文章

openssl 生成多域名 多IP 的数字证书

openssl.cnf 文件内容&#xff1a; [req] default_bits 2048 distinguished_name req_distinguished_name copy_extensions copy req_extensions req_ext x509_extensions v3_req prompt no [req_distinguished_name] countryName CN stateOrProvinceName GuangDong l…

Oracle VM VirtualBox仅主机(Host-0nly)网络实现外网连接

目录 1.仅主机(Host-0nly)网络介绍 1.操作步骤 2.测试​编辑 “如果您在解决类似问题时也遇到了困难&#xff0c;希望我的 经验分享 对您有所帮助。如果您有任何疑问或者想分享您的经历&#xff0c;欢迎在评论区留言&#xff0c;我们可以一起探讨解决方案。祝您在编程路上顺利…

通过多模态关系图学习实现可解释的医学图像视觉问答|文献速递--Transformer架构在医学影像分析中的应用

Title 题目 Interpretable medical image Visual Question Answering via multi-modal relationship graph learning 通过多模态关系图学习实现可解释的医学图像视觉问答。 01 文献速递介绍 医学视觉问答&#xff08;VQA&#xff09;是医学多模态大语言模型&#xff08;LL…

通信工程学习:什么是OLT光线路终端

OLT&#xff1a;光线路终端 OLT&#xff08;Optical Line Terminal&#xff0c;光线路终端&#xff09;是光纤通信系统中的核心局端设备&#xff0c;特别是在无源光网络&#xff08;Passive Optical Network, PON&#xff09;架构中扮演着至关重要的角色。以下是关于OLT光线路终…

GUI编程15:JPanel、JScroll 面板

视频链接&#xff1a;17、文本域JScroll面板_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p17&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.JPanel package com.yundait.lesson05;import javax.swing.*; import java.awt.*;public class JPanelDem…

C++速通LeetCode中等第5题-无重复字符的最长字串

字串substr法&#xff0c;定义字串的头部和长度&#xff0c;和字串后一位对比&#xff0c;如果不存在重复元素则长度1&#xff0c;存在重复元素则头部更新&#xff0c;长度重置。 class Solution { public:int lengthOfLongestSubstring(string s) {string s2;//存放s的前一部分…

基于虚拟阻抗的逆变器下垂控制环流抑制策略MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 由于微电网的弱电网特性&#xff0c;变流器并网线路较大的阻感比会导致变流器输出功率不能近似解耦&#xff0c;从而影响其下垂控制的精度。另外变流器并网线路阻抗的不确定性还会导致变流器之间分…

放过自己,决绝内耗

其实真正折磨你的&#xff0c;从来不是任何人的绝情&#xff0c;也不是糟糕的事情&#xff0c;而是你心存幻想的期待和无法控制的想象力&#xff0c;很多时候&#xff0c;你不是过不去生活的那道坎&#xff0c;而是过不了你心里的那一关&#xff0c;世间万物都在治愈你&#xf…

深入探究 Flask 的应用和请求上下文

目标 读完本文后&#xff0c;您应该能够解释&#xff1a; 什么是上下文哪些数据同时存储在应用程序和请求上下文中在 Flask 中处理请求时&#xff0c;处理应用程序和请求上下文所需的步骤如何使用应用程序和请求上下文的代理如何在视图函数中使用current_app和代理request什么…

『功能项目』第三职业弓弩的平A【58】

我们打开上一篇57第二职业法师的平A的项目&#xff0c; 本章要做的事情是实现第三职业弓弩的平A伤害 首先修改脚本&#xff1a;MagicBall.cs 将脚本挂载在Sphere预制体身上 注意组件设置 运行项目 本章做了第三职业弓弩的平A伤害及显示伤害UI 接下来文章的内容&#xff1a; …

【深度学习】(1)--神经网络

文章目录 深度学习神经网络1. 感知器2. 多层感知器偏置 3. 神经网络的构造4. 模型训练损失函数 总结 深度学习 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向。 从上方的内容包含结果&#xff0c;我们可以知道&#xff0c;在学习深度学…

你真的需要理解Diffusion(扩散模型),它在视觉领域具有无与伦比的美丽!

【Vision结合Diffusion】模型的研究方向&#xff0c;探索了如何利用扩散模型在数据空间中模拟随机游走的特性&#xff0c;以生成高质量和逼真的图像。这一领域的研究&#xff0c;通过结合视觉感知和文本描述&#xff0c;推动了图像合成技术的发展&#xff0c;尤其是在个性化图像…

家用小型洗衣机哪个牌子好?五款热搜爆火型号,速来围观

在日常生活中&#xff0c;内衣洗衣机已成为现代家庭必备的重要家电之一。选择一款耐用、质量优秀的内衣洗衣机&#xff0c;不仅可以减少洗衣负担&#xff0c;还能提供高效的洗涤效果。然而&#xff0c;市场上众多内衣洗衣机品牌琳琅满目&#xff0c;让我们往往难以选择。那么&a…

LabVIEW提高开发效率技巧----使用事件结构优化用户界面响应

事件结构&#xff08;Event Structure&#xff09; 是 LabVIEW 中用于处理用户界面事件的强大工具。通过事件驱动的编程方式&#xff0c;程序可以在用户操作时动态执行特定代码&#xff0c;而不是通过轮询&#xff08;Polling&#xff09;的方式不断检查界面控件状态。这种方式…

C++速通LeetCode中等第8题-最大字数组和

class Solution { public:int maxSubArray(vector<int>& nums) {if(nums.size()1) return nums[0];vector<int> v;int sum 0;for(int i 0;i < nums.size();i){sum nums[i];v.push_back(sum);}//结合股票最大利益那题int ans -10000;int lowest v[0];fo…

【毕设】基于Java的超市管理系统

基于Java的超市管理系统是一个用于管理超市日常运营的软件解决方案&#xff0c;它可以包括库存管理、销售管理、客户管理等多个模块。以下是一个简化的系统设计方案&#xff0c;以及一些关键组件和技术选型的建议。 系统架构 前端&#xff1a; HTML/CSS/JavaScript&#xf…

JavaDS —— B树

前言 本章节将带领大家进入B树的学习&#xff0c;主要介绍B树的概念和B树的插入代码的实现&#xff0c;删除代码不做讲解&#xff0c;最后简单介绍B树和B*树。 B树的概念 1970年&#xff0c;R.Bayer和E.mccreight提出了一种适合外查找的树&#xff0c;它是一种平衡的多叉树&…

裸土覆盖检测算法、裸土识别检测算法、裸土检测算法

裸土检测算法是一种基于计算机视觉和图像处理技术&#xff0c;用于自动识别和评估裸露土壤区域的智能工具。以下是对裸土检测算法的详细介绍&#xff1a; 1. 技术原理 - 数据采集与预处理&#xff1a;利用卫星、无人机或传感器收集地面图像数据&#xff0c;并进行必要的预处理…

练完这些项目,你就是大模型大师!

去年侧重大模型和GPT的原理&#xff0c;今年就侧重项目实战了。找到的这个合集不仅收集了大模型训练实战&#xff0c;还有微调实战&#xff0c;分布式训练&#xff0c;真的很全。 github项目名llm-action 本项目旨在分享大模型相关技术原理以及实战经验。 这份《大模型项目集》…

【Python爬虫】学习Python必学爬虫,这篇文章带您了解Python爬虫,Python爬虫详解!!!

Python爬虫详解 Python爬虫是一种用于从网站获取数据的自动化脚本。它使用Python编程语言编写&#xff0c;并利用各种库和模块来实现其功能。以下是Python爬虫的详细讲解&#xff0c;包括基本概念、常用库、基本流程和示例代码。 基本概念 HTTP请求&#xff1a;爬虫通过向目…