【Java基础】java学习之旅07-二维数组

JNI学习笔记:二维数组的使用 1 前言 2 程序一:Java类中的二维数组成员传值给C++并求和 2.1 代码 2.2 总结 3 程序二:C++代码修改Java类中的二维数组 3.1 代码 3.2 总结 4 程序三:C++代码中返回一个二维数组给Java类 4.1 代码 4.2 总结 1 前言   二维数组在JNI中的传值,与一维数组有些微不同。逻辑上,二维数组是一个类似于行列式的数据结... 阅读详情

例:

		int[] array1d = new int[5];
		
		System.out.println(Arrays.toString(array1d));
		
		int[][] array2d = new int[2][3];
		
		for (int i = 0; i < array2d.length; i++) {
			System.out.println(array2d[i].length);
			System.out.println(Arrays.toString(array2d[i]));
		}
  • array2d可以理解为一个容量是2的一维数组,这个一维数组的2个元素都是容量为3的一维数组
  • 可以把整个二维数组看成一个2*3的矩阵,2行3列

二维数组的练习:

输入一个不超过5位数的整数,输出中文形式。如:12345 -> 一万二千三百四十五

public static void main(String[] args) {
		
		//汉字数组,下标和内容对应
		char[] chinese = {'零', '一', '二', '三', '四', '五', '六', '七', '八', '九'};
		//单位
		String[] unit = {"","十", "百", "千", "万"};
		
		//用户输入的数字
		int num = 10010;
		
		//获取数字的位数
		int length = (num + "").length();
		
		//用来存放汉字
		String chineseNum = "";
		//用来存放上一个数字
		int lastNum = 0;
		
		//循环遍历各位数字
		for (int i = 0; i < length; i++) {
			//获取个位数字
			int temp = num % 10;
			//去掉个位数重新赋值
			num /= 10;
			//如果上一位数字是0,本位数字还是0,只需要一个。
			if (lastNum == 0 && temp == 0) {
				continue;
			//本位数字是0不需要拼接单位
			}else if (temp == 0) {
				chineseNum = chinese[temp] + chineseNum;
			//正常情况,拼接数字和单位
			} else {
				chineseNum = chinese[temp] + unit[i] + chineseNum;
			}
			//记录本位数字,用于下次循环的判断
			lastNum = temp;
		}
		
		System.out.println(chineseNum);
		
	}

一个整型数组中,存在若干个重复的元素,打印出所有重复元素的索引和元素值。

public static void main(String[] args) {
		
		int[] array = {1,2,4,4,5,5,6,7,2,8,6,2};
		
		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array.length; j++) {
				if (array[i] == array[j] && i != j) {
					System.out.println(i + "::" + array[i]);
					break;
				}
			}
		}
		
	}

在上一题基础上,去除重复元素,并生成一个新的数组,新数组不存在空位。

public static void main(String[] args) {
		
		int[] array = {1,2,4,4,5,5,6,7,2,8,6,2};
		int[] newArray = new int[array.length];
		
		//用于统计有多少个不重复的数字
		int count = 0;
		
		flag1:
		//一次遍历所有数字
		for (int i = 0; i < array.length; i++) {
			//和之后的所有数字进行比较
			for (int j = i + 1; j < array.length; j++) {
				//如果有重复,直接跳过进行下一个数字的比较
				if (array[i] == array[j]) {
					continue flag1;
				}
			}
			//将不重复的数字存放到新数组
			newArray[count] = array[i];
			//统计不重复数字的个数
			count++;
		}
		
		//去掉新数组的空位
		newArray = Arrays.copyOf(newArray, count);
		
		System.out.println(count);
		System.out.println(Arrays.toString(newArray));
		
	}

总结:

二维数组可以理解为为一个数组分配了多少个内存空间,每个内存空间里面存放的也是数组

Java语法基础学习笔记07-2-二维数组(简单了解-杨辉三角) 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、二维数组声明二、二维数组使用1.静态初始化2.动态初始化3.访问二维数组元素三、二维数组内存分析四、二维数组常见问题五、二维数组应用案例总结 前言 二维数组其实还是一个一维数组,只是他存放的元素又是一个数组。 一、二维数组声明 数据类型[ ][ ] 数组名 = new 数据类型[长度 ][长度 ] ; 举例: int[][] arr = new int[2][5]; //声明了一个长度为2的二维数组,里面每个元素数组的. 阅读详情

相关推荐

java学习笔记——数组和二维数组

​​。

qq_24992377的博客 786

python算法问题_A搜索算法(python)之八数码问题

什么是启发式搜索算法启发式搜索(Heuristically Search)又称为有信息搜索(Informed Search),它是利用问题拥有的启发信息来引导搜索,达到减少搜索范围、降低问题复杂度的目的,这种利用启发信息的搜索过程称为启发式搜索。启发式搜索包括A算法和A*算法。启发式算法的核心思想:f(x)=g(x)+h(x)评估函数f(x)定义为:从初始节点S0出发,约束地经过节点X到达目标节点...

weixin_39543835的博客 1072

Java零基础-二维数组详解!

在上一篇文章中,我们探讨了Java中的一维数组及其基本操作。一维数组是存储和处理相同类型数据的基础结构,而二维数组则进一步扩展了这一概念,用于表示表格或矩阵结构的数据。本文将深入介绍二维数组的定义、初始化、操作和实际应用,帮助读者掌握这一重要的数据结构,并为进一步的编程挑战打下坚实的基础。二维数组是Java中的一种重要数据结构,用于存储表格形式的数据。通过本文的学习,您将了解二维数组的定义、初始化方法、常见操作以及实际应用案例。

喵手的博客 1227

Java基础:数组

数组概述     关于数组我们可以把它看作是一个类型的所有数据的一个集合,并用一个数组下标来区分或指定每一个数,例如一个足球队通常会有几十个人,但是我们来认识他们的时候首先会把他们看作是某某队的成员,然后再利用他们的号码来区分每一个队员,这时候,球队就是一个数组,而号码就是数组的下标,当我们指明是几号队员的时候就找到了这个队员。 同样在编程中,如果我们有一组...

adsdaas的博客 613

Win10环境下VS2019离线部署OnnxRuntime的完整指南

本文提供了在Windows 10系统下,为Visual Studio 2019进行OnnxRuntime离线部署的完整教程。针对网络受限环境,详细讲解了如何获取正确的离线安装包、配置本地NuGet源,并逐步指导项目配置与测试,确保AI模型在C++环境中顺利运行。

weixin_29205061的博客 398

Ubuntu20.04安装Torque-6.1.2单机版(踩坑篇)

说明:PBS排队系统原先是在Centos7安装使用很顺利,但是有客户需求在Ubuntu20.04上使用,着手在Ubuntu20.04安装上安装的时候发现很多报错,并不能顺利安装,网上查找到的教程,有的说是让放弃转slurm,有的是换源安装,但是安装好的版本很低,有许多bug,不是很好用。经过自己慢慢摸索之后,改了部分配置以及源码之后,能够顺利安装,再次记录一下踩坑心得,与大家一起分享学习。如有问题,欢迎大家来撩。...............

华青水上的博客 8087

JAVA 二维数组 矩阵练习

import java.util.Random; class MatrixTower { public static void main(String[] args) { //声明一个矩阵空间 int[][] matrix = new int[][]{ {-1,12,4,0,7,-5,6,7,7,4,0,0,-5,2,-4}, {-1,65,4,0,7,-5,6,1,7,4,0,0,-15,..

u013160594的博客 1364

Gromacs基础教程一:入门建议

本系列教程针对的群体:非计算化学专业,而是偏生物方向的、有少量分子动力学模拟需求的人群。

m0_67843839的博客 8571

Java排序及二维数组练习

【编程题】 1.判断一个数组里是否有重复的数,假设数组名为int[] array 您的回答: import java.util.*; public class Test{ public static void main(String args[]){ //判断一个数组里是否有重复的数,假设数组名为int[] array 做笔记!!! int[] array=new int[5]; Scanner sc=new Scanner(System.in); for(int i=0;i<

ChenYanQing666的博客 1684

CCD 技术介绍(基于innovus引擎CCOpt)

CCD:全称是,并行优化clock和data path。CCOpt:全称是Clock的timing分为两种模式,和。preCTS并没有clock,因此需要建立一个,从clock端口到寄存器CK端的来自sdc中的设置;postCTSupdateIO latency,clock就会自动的转换成propagatedclock,这时就是实际时钟互连线网络的delay。在实际设计中,clock起始于ideal。

m0_61003348的博客 8974

电商订单系统设计简析(一)

电商所有模块中,订单系统作为最为核心的模块,决定了整个流程能不能顺畅的执行,起着承上启下的作用。相信很多PM都不陌生,到了一家电商公司,总会觉得公司现有的流程有不少问题,因为问题来自四面八方,一下子摸不着到底是哪里出了问题,PM就跟补丁师傅一样,遇到一个补一个。其实很多日常开发和测试提得需求都是表面需求,而这些表面上呈现出的各种问题,都是源自于流程上的不完整或者流程上某个环节上的缺失导致的。订单系...

野蛮非先生的博客 9553

java二维数组输入_java 二维数组的输入输出问题

java 二维数组的输入输出问题有一个二维数组 里面包含了很大的数字。我要把它通过输出流存储在.dat文件中 然后在另一个程序中把这些信息读取出来,并且存储在另外一个二维数组中。请问该怎么办?这个数组如下:int mapl[][]={{ 0, 0, 0, 0, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 178, 0,0, 0, 0, 0, ...

weixin_35148271的博客 2803

AI Agent在保险行业落地:从智能客服到核保理赔的实践路径

AI Agent作为大模型技术的核心应用形态,正从通用对话走向垂直行业深度落地。其本质是让机器理解自然语言、处理非结构化文档,并在复杂业务流程中辅助人类完成信息抽取、内容生成与多轮交互。在保险这一强监管、高客单价的行业中,智能客服与销售助手率先验证了降本增效的价值,核保与理赔环节则进一步展示了AI在文档理解与风控辅助上的高价值潜力。从技术原理到商业闭环,垂直场景正在成为AI应用的主战场。本文以保险行业为样本,剖析AI Agent如何嵌入真实业务流程,梳理可复用的三阶段落地路径,为企业在医疗、金融等类似高文本

weixin_29039773的博客 363

JAVA基础——数组与二维数组

本文介绍了JAVA中数组与二维数组的基础知识。数组是用于存储同一类型数据的有序容器,具有元素类型统一、长度固定和通过索引访问的特性。数组的初始化方式包括静态初始化和动态初始化,静态初始化在定义时指定元素值,而动态初始化则指定数组长度并由系统自动填充默认值。数组的访问与遍历可以通过索引、length属性以及for循环或增强for循环实现。文章还通过学生成绩统计的案例展示了数组的实际应用。后,二维数组被定义为数组中的每个元素又是一个一维数组,适用于存储二维表格数据,其初始化方式同样包括静态和动态两种。

Yan_ks的博客 846

51智能小车(双轮)

前几天接了个小单子,是一个基于51单品机的作品,发现自己对小车的认识还是不太🆗。也算是完成了任了的;欢迎各位小伙伴来多多交流,大家一起进步。最后有需要单片机课程设计的小伙伴滴滴我哦(有偿)。企鹅:2397746994。

qq_56992543的博客 2346

22、云数据中心网络(DCN)部署最佳实践

本文详细介绍了云数据中心网络(DCN)部署的最佳实践,涵盖SDN设计、服务网络规划、管理网络规划等方面。通过合理的架构设计、路由规划和组件协同,提升数据中心的自动化水平、可靠性及安全性,以满足不断增长的业务需求。

d6e7f8的博客 186

java学习之实现二维数组排序

如题: java不像c语言,没有指针,所以没办法通过指针取值进行排序。那么java的二维数组是怎么排序的呢? 解决方法如下: 方法一: 思路:新建一个一维数组将二维数组的数据按行存入,然后对一维数组排序,最后将排过序的一维数组按序存入二维数组 实现原理为一维数组排序,此处不做展示 方法二: 思路:(我使用的是选择排序,每次循环确定一个位置,下次循环就少循环一个数) 先获取二维数组的元素个数,若二维数组不为正则数组,可通过遍历获得元素个数。 以元素个数作为总循环次数作为...

qq_45799689的博客 3225

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

初识Java(终章)(二维数组)(自己学习整理的资料)

二维数组 关于基本类型以及引用的类型 Java基础总结 Java程序的三大结构

Li_030406的博客 1145

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【Java全栈学习笔记-U1-day07】二重循环+二维数组

一个循环体内又包含别一个完整的循环的结构。

m0_47109389的博客 442

(持续更新)零基础入门 Java 之初始二维数组

定义二维数组数据类型[][] 数组名;数据类型 数组名[][];通常更推荐第一种写法,因为它更清晰地表明这是二维数组类型。2.初始化二维数组静态初始化:定义的同时直接给数组元素赋值。例如:{1, 2, 3},{4, 5, 6},{7, 8, 9}这就创建了一个 3 行 3 列的二维数组,每一个大括号内的元素构成二维数组的一行。动态初始化:先定义数组,再分配内存空间并赋值。例如:// 依次类推,为每个元素赋值。

qq_46875171的博客 808

Java基础学习5-二维数组

Java基础学习5-二维数组引入一、基本代码:1、基础代码2、四种遍历方式二、二维数组学习1.初始化2.代码如下(示例): 引入 一、基本代码: 1、基础代码 public class TestArray15{ public static void main(String[] args){ //定义一个二维数组: int[][] arr = new int[3][];//本质上定义了一个一维数组,长度为3

qq_46645079的博客 338

Java数组(二维数组)

目录 前言 多维数组 二维数组 声明二维数组 创建二维数组 访问二维数组 遍历二维数组 最后 前言 在上一篇文章Java数组(一维数组)中,我们学习了一维数组,那么今天我们来学习Java二维数组。 多维数组 数组元素除了可以是原始数据类型、对象类型之外,还可以是数组,即数组元素是数组,通过声明数组的数组来实现多维数组。多维数组的使用和二维数组使用相似,我们来介绍二维数组。 二维数组 声明二维数组 声明二维数组语法有两种格式,例如: 数组类型[] [] 数组名;

霖hero 1万+

java二维数组的创建,java二维数组创建方法

java动态创建二维数组,从零学java笔录-第31篇 图解二位数组在内存中存储,java二维数组动态赋值,java二维数组创建方法二维数组的定义 type arrayName[ ][ ]; type [ ][ ]arrayName Java 二维数组的声明、初始化和引用 二维数组的声明、初始化和引用与一维数组相似,这里不再详......java定义二维数组的几种写法_计算机软件及应用_IT/计算...

weixin_33489687的博客 2769

Java学习笔记-Day08 Java二维数组

Java学习笔记-Day07 Java二维数组一、二维数组的概念二、二维数组的声明三、二维数组的初始化1、动态初始化2、静态初始化3、一维和二维的长度3.1、一维和二维的长度都确定3.2、只有一维的长度确定4、二维数组的内存四、二维数组的遍历五、杨辉三角     一、二维数组的概念   二维数组是以 一维数组 为数组元素。   二、二维数组的声明   二维数组的声明形式 语法1(常用): 数组元素类型[ ][ ] 变量名称;  例如:int[ ][ ] a; 或 String[ ][ ] s; 语法

qq_42141141的博客 793

C与JAVA在二维数组声明省略行列的问题

C语言与JAVA在二维数组声明省略行列的问题 我在学习过程遇到了一个C语言二维数组声明省略行列的问题,因为学习了JAVA所以做题时纠结很久,因为记得JAVA二维数组每行的元素个数可以不同,所以认为必须声明行数可以省略列数,然而在C语言中是错误的。 在学习C语言与JAVA的过程中做题遇到了声明二维数组时只声明行与只声明列的问题,原本以为自己记错了,回顾发现了一个很有意思的问题,原来C与JAVA在...

Bing_sama的博客 4777

Java 学习27:二维数组

在 Java 中,二维数组被看作数组的数组,即每个元素本身都是一个一维数组。

lcu111的博客 612
上一篇: 【Java基础】java学习之旅06-数组的相关知识
下一篇: 【Java基础】数组的练习题目
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值