《从C/C++到Java入门指南》- 16.多维数组

多维数组

二维数组

打印一下 Java 中的二维数组会发现,打印的是 JVM 中的地址:

import java.util.*;
public class Main {public static void main(String[] args) {int arr[][] = {{1, 2, 3},{4, 5, 6}};int ns[] = {3, 4, 1, 3};System.out.println(Arrays.toString(arr));System.out.println(Arrays.toString(ns));    	}
}

输出结果:

[[I@5ccd43c2, [I@4aa8f0b4]
[3, 4, 1, 3]

打印一下二维数组的长度:

import java.util.*;
public class Main {public static void main(String[] args) {int arr[][] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};System.out.println(arr.length);}
}

其在内容中的结构如下:

image-20240719104535222

打印出数组的每一行:

import java.util.*;
public class Main {public static void main(String[] args) {int arr[][] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int arr_0[] = arr[0];int arr_1[] = arr[1];int arr_2[] = arr[2];System.out.println(Arrays.toString(arr_0));System.out.println(Arrays.toString(arr_1));System.out.println(Arrays.toString(arr_2));}
}

Java 中二维数组中的每一个子数组长度不要求相同

import java.util.*;
public class Main {public static void main(String[] args) {int arr[][] = {{1, 2, 3},{4, 5, 6, 8, 9},{7, 8, 9, 7}};int arr_0[] = arr[0];int arr_1[] = arr[1];int arr_2[] = arr[2];System.out.println(Arrays.toString(arr_0));System.out.println(Arrays.toString(arr_1));System.out.println(Arrays.toString(arr_2));}
}

打印二维数组

最麻烦的方法当然是用循环打印二维数组了,但是还有一种更加简单的方法(调用 JDK函数接口):

使用Arrays.deepToString()方法

import java.util.*;
public class Main {public static void main(String[] args) {int arr[][] = {	{1, 2, 3},{4, 5, 6, 8, 9},{7, 8, 9, 7}};System.out.println(Arrays.deepToString(arr));}
}

三维数组

一种很形象的描述是:“三维数组就是二维数组的数组”。

import java.util.*;
public class Main {public static void main(String[] args) {int[][][] ns = {{{1, 2, 3},{4, 5, 6},{7, 8, 9}},{{10, 11},{12, 13}},{{14, 15, 16},{17, 18}}};System.out.println(Arrays.deepToString(ns));}
}

可以看到,deepToString()就是一种深度搜索的打印多维数组的方法,在三位数组的情况下也同样适用,并且它在内存中的结构如下图所示:

image-20240719105357795

练习

使用二维数组可以表示一组学生的各科成绩,请计算所有学生的平均分:

int[][] scores = {{ 82, 90, 91 },{ 68, 72, 64 },{ 95, 91, 89 },{ 67, 52, 60 },{ 79, 81, 85 },};
import java.util.*;
public class Main {public static void main(String[] args) {int[][] scores = {{ 82, 90, 91 },{ 68, 72, 64 },{ 95, 91, 89 },{ 67, 52, 60 },{ 79, 81, 85 },};for (int[] stu : scores) {int stu_ave = 0;for (int score : stu) {stu_ave += score;}	// 对每个学生求出成绩的总分stu_ave /= scores[0].length;	// 除以长度得到其平均分System.out.println(stu_ave);}}
}

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

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

相关文章

鸿蒙仓颉语言【互操作InterOp】

interoperate 语言的互操作,是必不可少的核心能力,在不同的操作系统平台上要与不同基础的OS接口api进行交互,以创建更合适的兼容层。 仓颉使用foreign关键字来声明调用的不同操作系统的基础API,声明的同时,明确数据类…

leetcode hot100 (面试复习用)

数组 最大子数组和 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入:nums [-2,1,-3,4,-1,2,1,-5,4]输出:6解释&#xff1…

【Qt】按钮的属性相关API

目录 一. QPushButton 二. QRadioButton 按钮组 三. QCheckBox Qt中按钮的继承体系如下图 QAbstractButton是一个抽象类,集成了按钮的核心属性和API 按钮说明QPushButton(普通按钮)最常见的按钮,用于触发操作或者事件。可以设…

习题2.21

(defn rever [a](defn item[l r](if ( nil (first l)) r(item (rest l) (cons (first l) r))))(item a nil)) 这段代码非常有助于理解什么是深度优先,什么是广度优先。 很久没有写习题的代码了,倒不是懒得做习题了,是私事多,状态…

【系统架构设计】数据库系统(三)

数据库系统(三) 数据库模式与范式数据库设计备份与恢复分布式数据库系统分布式数据库的概念特点分类目标 分布式数据库的架构分布式数据库系统与并行数据库系统 数据仓库数据挖掘NoSQL大数据 数据库模式与范式 数据库设计 备份与恢复 分布式数据库系统…

macbook pro大模型推理

安装与配置 参考github ollama 链接安装ollama。安装完成后,安装常用的模型,下载速度超快。 性能测试 在进行实际测试之前,我首先对模型进行了预处理,以确保其在 M3 Max 上能够高效运行。测试过程中,我主要关注了以下几个方面: 模型加载时间 加载大型模型通常需要较…

粘弹性和机械塑性等力学行为如何影响细胞行为?

组织和细胞外基质(ECM)是细胞生存和功能的关键组成部分,它们不仅提供细胞生长和迁移的结构支撑,还通过其力学特性影响着细胞的形态、功能和行为。组织和ECM并非简单的材料,它们展现出复杂且多样的力学行为,…

农场驿站平台小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,农场资讯管理,卖家管理,用户分享管理,分享类型管理,商品信息管理,商品分类管理,系统管理,订单管…

MATLAB学习日志DAY13

13.矩阵索引(1) 13.1 下标 上图! A 的行 i 和列 j 中的元素通过 A(i,j) 表示。 例如,A(4,2) 表示第四行和第二列中的数字。 在幻方矩阵中, A(4,2) 为 15。 A(1,4) A(2,4) A(3,4) A(4,4) 用来计算 A 第四列中的…

【PB案例学习笔记】-32制作一个简单记事本程序

大家好,我是晓凡。 写在前面 这是PB案例学习笔记系列文章的第32篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码…

JVM基本知识——运行空间

JVM(Java Virtual Machine)即Java虚拟机,是负责读取java字节码,并在实际的硬件环境中运行。 JVM可以分为三部分:类装载器(ClassLoader)子系统、内存空间、执行引擎 内存空间(运行时…

“狂飙”过后,大模型未来在何方?

2024年6月14日,第六届“北京智源大会”在中关村展示中心开幕。 开幕现场,智源研究院、OpenAI、百度、零一万物、百川智能、智谱AI、面壁智能等国内主流大模型公司CEO与CTO,人工智能顶尖学者和产业专家,在围绕人工智能关键技术路径…

【计算机网络】计算机网络的性能指标(上篇)

个人主页:【😊个人主页】 系列专栏:【❤️计算机网络】 文章目录 前言计算机网络的性能指标速率数据量速率的定义计算方法与测量影响因素优化方法 带宽带宽的定义影响因素计算方法优化方法 吞吐量定义测量与测试影响因素与带宽的区别提升方法…

数据结构(栈)

文章目录 一、概念与结构 栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压…

docker compose 容器 编排分组

遇到问题:执行docker compose up -d 后docker compose 创建的容器们 在desktop-docker 中都在docker下一堆 搜索想着能不能把这个docker名字改一下,但是都没有找到这样的一个方案; 最后发现,我执行docker compose up -d 命令所在…

7. LangChain4j如何使用统一api调用?

前言 当我们对接LangChain4j的时候,面对复杂的各种各样的大模型的api的对接,让很多开发者感到力不从心。在每个大模型的api都不一样的时候?该如何快捷的切换模型的使用呢? 这时,One-API应运而生,它以其简洁…

面向初学者和专家的 40 大机器学习问答(2024 年更新)

面向初学者和专家的 40 大机器学习问答(2024 年更新) 一、介绍 机器学习是人工智能的重要组成部分,目前是数据科学中最受欢迎的技能之一。如果你是一名数据科学家,你需要擅长 python、SQL 和机器学习——没有两种方法。作为 DataFest 2017 的一部分,我们组织了各种技能测…

windows ssh的登录,私钥权限太开放 WARNING: UNPROTECTED PRIVATE KEY FILE!

问题描述 ssh -i wang -D localhost:1080 wangsg.ks99.topBad permissions. Try removing permissions for user Permissions for xxx are too open. F:\pms\pms-gpg-key\ssh-key\wang>ssh -i wang -D localhost:1080 wangsg.ks99.top Bad permissions. Try removing perm…

flutter 充电气泡

前言: 之前一直看到 有手机充电的时候 有气泡从Type-C 的位置冒泡上来 慢慢上移, 然后和上面的圆圈 会和,感觉还是挺好看的。今天试了下用 Flutter 实现了一版本。大致效果如下,而且气泡 和 气泡直接还可以粘黏 实现原理&#xff…

【开发实战】QT5 + OpenCV4 开发环境配置应用演示

前言 作为深度学习算法工程师,必须要掌握应用开发技能吗?搞工程肯定是必须要会界面开发,QT就是一个很不错的选择。本文以QT5.15 OpenCV4.8 OpenVINO2023为例,搭建应用开发环境,演示深度学习模型的QT应用案例。 开发…