3_2、Java基本语法之一维数组与二维数组的使用

java二维数组字符数组_Java中的二维数组 java二维数组字符数组Today we will look into Two-dimensional array in java. An array is like a container that can hold a certain number of values. 今天,我们将研究Java中的二维数组。 数组就像可以容纳一定数量值的容器。 Java中的二维数组 (Two Dimens... 阅读详情

导语:数组是Java基础语法中重要的组成部分。

        数组的基础知识主要从以下几个方面进行讲解。

                1、数组的声明和初始化
                2、如何调用数组指定位置的元素
                3、如何获取数组的长度
                4、如何遍历数组
                5、数组元素的默认初始化值
                6、数组的内存解析

        

一、一维数组的使用

        1、一维数组的声明和初始化

                1.1静态初始化:数组初始化和数组元素的赋值操作同时进行

		int[] ids;
		ids = new int[]{1001,1002,1003,1004};

                1.2、动态初始化:数组初始化和数组元素的赋值操作分开进行

        int[] arr = new int[3];
        String[] names = new String[5];

                错误示范:编译错误

		//错误示范
		//int[] arr1 = new int[];
		//int[] arr2 = new int[3]{1001,1002,1003};
		//int[5] arr3 = new int[5];

        2、如何调用数组指定位置的元素:

                说明:①通过角标(索引)来调用指定位置的数组元素

                           ②数组元素的角标是从0开始的,到数组长度-1为止。

		names[0] = "王力宏";
		names[1] = "雷军";
		names[2] = "余承东";
		names[3] = "罗永浩";
		names[4] = "迪丽热巴";
//		names[5] = "古力娜扎";   java.lang.ArrayIndexOutOfBoundsException: 5
		System.out.println(names[3].charAt(0));

        3、如何获取数组的长度

                说明:①调用数组的length属性。

                           ②数组初始化完成后,其长度就被确定,无法改变。

		System.out.println(names.length);
		System.out.println(ids.length);

 

        4、如何遍历数组

                说明:使用循环结构。

/*		System.out.println(names[0]);
		System.out.println(names[1]);
		System.out.println(names[2]);
		System.out.println(names[3]);
		System.out.println(names[4]);
*/
		for(int i=0;i<names.length;i++){
			System.out.println(names[i]);
		}

 

        5、数组元素的默认初始化值

                1、基本数据类型:

                        >数组元素是整型:0
                        >数组元素是浮点型:0.0
                        >数组元素是字符型:0或者写成'\u0000'
                         >数组元素是布尔型:false

                2、引用数据类型:

                        >数组元素是引用数据类型:null

		int arr1[] = new int[3];
		for(int i=0;i<arr1.length;i++){
			System.out.println(arr1[i]);
		}
		System.out.println("********");
		
		double arr2[] = new double[3];
		for(int i=0;i<arr1.length;i++){
			System.out.println(arr2[i]);
		}
		System.out.println("********");
		
		char arr3[] = new char[3];
		for(int i=0;i<arr1.length;i++){
			System.out.println("----"+arr3[i]+"****");
		}
		
		if(arr3[0] == 0){
			System.out.println("hello");
		}
		System.out.println("********");
		
		boolean arr4[] = new boolean[3];
		for(int i=0;i<arr1.length;i++){
			System.out.println(arr4[i]);
		}
		System.out.println("********");
		
		String arr5[] = new String[3];
		for(int i=0;i<arr1.length;i++){
			System.out.println(arr5[i]);
		}
		if(arr5[0] == null){
			System.out.println("你好");
		}
		System.out.println("********");

 

        6、数组的内存解析

                1、内存的建议结构(尚硅谷康师傅作图):

         2、一维数组的内存解析:

 

        7、经典例题

                1、从键盘读入学生成绩,找出最高分, 并输出学生成绩等级。

                        成绩>=最高分-10 等级为’A’

                        成绩>=最高分-20 等级为’B’

                        成绩>=最高分-30 等级为’C’

                        其余 等级为’D’

		Scanner scan = new Scanner(System.in);
		
		System.out.print("请输入学生人数:");
		int count = scan.nextInt();
		int[] arr = new int[count];
		
		int max = 0;
		char grade = ' ';
		System.out.println("请输入" + count + "个成绩");
		for(int i=0;i<arr.length;i++){
			int score = scan.nextInt();
			arr[i] = score;
			if(arr[i]>max){
				max = arr[i];
			}
		}
		System.out.println("最高分是:" + max);
		for(int i = 0;i<arr.length;i++){
			switch((max-arr[i])/10){//也可以使用if-else结构,要注意根据范围确定哪个语句在上
				case 0:
				grade = 'A';
				break;
				case 1:
				grade = 'B';
				break;
				case 2:
				grade = 'C';
				break;
				default :
				grade = 'D';
				break;
			}
			System.out.println("student " + i +"score is"+arr[i] + "grade is "+ grade);
		}

运行结果:

 

二、二维数组的使用


                如何理解二维数组?

                对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组。

        1、二维数组的声明和初始化

                1.1、二维数组的静态初始化

        int[][] arr1 = new int[][]{{1,2,3},{4,5},{6}};

                1.2、二维数组的动态初始化

		String[][] arr2 = new String[3][2];
		String[][] arr3 = new String[3][];

        //也是正确的写法
        int[] arr4[] = new int[][]{{1,2,3},{4,5,7,8,9},{6}};
		int[] arr5[] = {{1,2,3},{4,5},{6}};


        2、如何调用数组指定位置的元素

                      说明:根据元素所在数组的角标进行调用。

		System.out.println(arr1[1][1]);//5
		System.out.println(arr2[2][1]);//null

        arr3[0] = new String[2];
		arr3[1] = new String[]{"张强","王伟","鱼尾"};
		System.out.println(arr3[0][1]);//null
		System.out.println(arr3[1][0]);//张强


        3、如何获取数组的长度

                调用数组的length属性。

		System.out.println(arr4.length);//3
		System.out.println(arr4[0].length);//3
		System.out.println(arr4[1].length);//5


        4、如何遍历数组

                使用嵌套循环结构遍历二维数组,依次类推如果要遍历三维数组,就使用三层嵌套循环,遍历n维数组就使用n层嵌套循环。

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


        5、数组元素的默认初始化值

                1、为了我们更好的理解二维数组的初始化默认值,我们规定:

                        1、二维数组分为外层数组的元素和内层数组的元素
                        2、二维数组 int[][] arr = new int[3][2]
                        3、外层数组:arr[0],arr[1],arr[2]
                        4、内层数组:arr[0][0],arr[0][1],arr[1][0],arr[1][1],arr[2][0],arr[2][1]

                对于初始化方式一:int[][] arr = new int[3][2];

                        外层数组的默认初始化值:地址值。

                        内层数组的默认初始化值:与一维数组相同。

                对于初始化方式二:int[][] arr = new int[3][];

                        外层数组默认初始化值:null。

                        内层数组默认初始化值:不存在,不可调用,调用编译器会报错。

		int[][] arr = new int[4][3];
		
		System.out.println(arr[0]);//[I@15db9742    地址值
		System.out.println(arr[0][0]);//0
		
		System.out.println(arr);//[[I@6d06d69c    地址值
		System.out.println("********");
		
		float[][] arr1 = new float[4][2];
		System.out.println(arr1[1]);//[F@7852e922    地址值
		System.out.println(arr1[2][1]);//0.0
		System.out.println("********");
		
		String[][] arr2 = new String[4][3];
		System.out.println(arr2[2]);//[Ljava.lang.String;@4e25154f    地址值
		System.out.println(arr2[1][1]);//null
		System.out.println("********");
		
		double[][] arr3 = new double[4][];
		System.out.println(arr3[2]);//null
//		System.out.println(arr3[3][0]);//报错
		System.out.println("********");


        6、数组的内存解析

 

        7、经典例题

                1、打印一个10行的杨辉三角。

		//1.声明初始化一个二维数组
		int[][] yangHui = new int[10][];
		
		//2.给二维数组赋值
		for(int i=0;i<yangHui.length;i++){
			yangHui[i] = new int[i+1];
			//2.1给首末元素赋值
			yangHui[i][0] = yangHui[i][i] = 1;
			//2.2给非首末元素赋值
			//if(i>1){
				for(int j=1;j<yangHui[i].length-1;j++){
					yangHui[i][j] = yangHui[i-1][j-1] + yangHui[i-1][j]; 
				}
		//	}
			
		}
		//3.遍历二维数组
		for(int i=0;i<yangHui.length;i++){
			for(int j=0;j<yangHui[i].length;j++){
				System.out.print(yangHui[i][j]+" ");
			}
			System.out.println();
		}

运行结果:

 

Java中的一维数组和二维数组 Java中的数组 常用的就是一维数组、二维数组。 一维数组 数组定义:数据就是相同数据元素的集合。 数组是一种引用数据类型。不属于基本数据类型。 (1) 如何定义(声明)一维数组? 声明格式:数据类型[] 数组名称; (2) 数组的初始化 数组声明之后就需要初始化,即:分配内存空间。使用关键字new为数组分配内存空间。 初始化格式:数据类型[] 数组名称 = new ... 阅读详情

相关推荐

飞塔防火墙CVE-2022-40684漏洞复现:手把手教你搭建靶场环境(附调试技巧)

本文详细指导如何搭建Fortinet飞塔防火墙CVE-2022-40684认证绕过漏洞的靶场环境,涵盖虚拟机部署、网络配置、调试模式开启及漏洞原理分析。通过手把手教程,读者可掌握漏洞复现与深度调试技巧,深入理解该认证绕过漏洞的利用与防御。

h6i7j8的博客 695

[Java]一维二维数组的理解,定义与调用

一维数组 1.定义(类型名[] 数组名 = new 类型名[数组长度]) public class Hee { public static void main(String[] args){ int[] arr = new int[5];//这里定义了一个长度为5的一维数组 } } 2.调用(数组名[索引]) import java.util.Scanner; public class...

weixin_44581452的博客 636

海康视觉相机驱动软件MVS参数配置全攻略(附接线图+避坑指南)

本文提供了海康视觉相机驱动软件MVS从硬件连接到软件参数配置的完整指南。详细解析了供电与通讯线缆的区分、PNP/NPN信号逻辑的接线避坑方法,并重点阐述了MVS软件中触发模式、网络IP配置、图像采集及光源控制等核心参数的设置技巧,旨在帮助用户快速完成相机调试,实现稳定高效的图像采集。

weixin_29204205的博客 399

Java数组——一维二维数组的声明及引用以及数组元素的引用

1 数组的概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理。 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。 数组中的元素可以是任何数据类型,包括基本类型和引用类型。 2 一维数组的声明 一维数组的声明方式:type var[]或type[] var   例如:int a1[];   int[] a2;       double b[]

CherrieZhang的博客 1595

Springboot项目中使用邮箱验证码注册登录的代码实现

本文介绍了在Spring Boot应用中实现邮箱验证码注册和登录功能的完整方案。文章首先概述了三种用户认证方式(邮箱验证码注册/登录和传统密码登录),然后详细说明了实现所需的技术栈(Spring Boot、Spring Security、JWT等)。重点阐述了邮件服务配置、验证码生成与存储的核心实现,包括QQ邮箱授权码获取、Thymeleaf邮件模板处理以及验证码缓存管理。最后展示了发送验证码和用户注册的API实现,为开发者提供了完整的参考方案。该方案兼顾安全性和用户体验,适合现代Web应用的用户认证需求。

BXCQ_xuan的技术专栏 | 实战干货·实践教程·学习笔记 1340

【Clickhouse】Clickhouse写入报错keeper server rejected the connection during the handshake

我的clickhouse集群时不时的报这个错误All connection tries failed while connecting to ZooKeeper. nodes: xxx 到时写入数据失败 用的ck自带的keeper。你需要仔细检查ZooKeeper集群的配置和状态,确保所有节点都正常运行,并且能够正确地选举领导者。检查ZooKeeper的ACL以及ClickHouse连接所使用的凭据,确保它们被正确配置和授权。版本不兼容:有时,不同版本的软件之间可能存在不兼容性,导致连接问题。

九师兄 372

Java实验--数组的引用与元素

实验2.2 数组的引用与元素 一、实验目的 本实验的目的是让学生掌握数组属于引用型的一种复合弄数据类型。 二、实验要求 编写一个简单的Java应用程序,该程序在命令行窗口输出数组的引用以及元素的值。 三、程序效果示例 程序运行效果如图2.2所示。 图2.2 输出数组的引用和元素的值 四、程序模板 请按模板要求,将【代码】替换为Java程序代码。 【InputArray.jav...

sziit1609030127的博客 9941

33、AI赋能5G/6G通信:LDPC码解码与强化学习技术解析

本文探讨了基于AI和强化学习的LDPC码技术在5G/6G通信中的应用。包括LAMS解码器、神经MS解码器、盲识别方法、统一极性-LDPC解码器、NNMS和SNNMS解码器、N-2D-NMS解码器、神经分层MS解码器、MAB-NS方案以及强化学习与MCTS结合的技术。这些技术在提升解码性能、降低计算复杂度和增强系统适应性方面表现出色,为未来通信系统的发展提供了强有力的支持。

lambda的博客 242

Java数组:一维数组、二维数组、Arrays

Java数组

游手好闲 1391

从自然语言到PCB设计:DeepSeek与Altium协同自动化实战指南

摘要:在电子设计领域,将自然语言需求转化为PCB设计图是实现自动化设计的重要目标。受限于当前NLP和EDA技术,通过DeepSeek直接生成完整PCB设计图尚无法实现,但在设计辅助环节已展现实用价值。本文深入分析技术可行性,提出"自然语言→设计约束→脚本生成→人工验证"的人机协同工作流。通过28个完整代码示例、12张技术图表及5个工程案例,详细展示DeepSeek解析需求、生成设计约束,并结合Altium Designer API实现元件放置、规则设置、DRC校验的全流程。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1762

海思芯片OpenHarmony系统移植:Sensor传感器模块HDF驱动配置HCS文件详解

海思系列芯片的传感器模块通过HDF(Hardware Driver Foundation)驱动框架进行管理和配置。传感器HCS(HDF Configuration Source)配置文件定义了各类传感器的硬件参数、总线配置、寄存器序列等信息,为传感器驱动提供必要的初始化和运行参数。海思系列芯片适配OpenHarmony的传感器HDF配置HCS文件是传感器驱动开发的关键部分,通过合理配置可以实现各种传感器设备的驱动支持。

m0_67505153的博客 209

一维数组的内存解析java_JAVA_基础Array数组(一维数组、二位数组)介绍与内存解析...

Array数组一、数组的概述数组的理解:①数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。②数组属于引用数据类型,数组的元素也可以是引用类型。数组相关的概念:数组名元素角标、下标、索引数组的长度:元素 的个数数组的特点:①数组是有序排列的②数组属于引用数据类型变量。③创建数组对象会在内存中开辟一整快连续的空间④数组的长度一旦确...

weixin_30219823的博客 270

NVIDIA Jetson之远程控制软件NoMachine安装使用

参考:https://www.bilibili.com/video/BV1cg4y1i776?t=12 0 背景

ZONGXP的博客 1万+

Java 中的一维数组以及二维数组(8千字零基础超全详解)

数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。即:数(数据)组(一组)就是一组数据。

林二月的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

一维数组与二维数组

目录1.一维数组1.什么是数组?# 2.数组的声明的两种方式:3.数组创建的三种方式4.数组的访问与迭代2.二维数组1.什么是二维数组?2.二维数组的声明的两种方式:3.二维数组创建的三种方式4.二维数组的迭代 1.一维数组 1.什么是数组? 数组是相同数据类型元素的集合。 简单说,数组即就是在计算机内存中找一块连续的内存,在里面放相同类型的数据。 注意: 1.数组里放入的数据类型必须相同 2.当数组创建后其长度就不可改变 # 2.数组的声明的两种方式: • 数据类型 [] 数组名字 例如:int []

qq_56501283的博客 5337

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java一维数组与二维数组

1.概述 ①Java语言中的数组是一种引用数据类型。不属于墓本数据类型。数组的父类是 object ②数组实际上是一个容器,可以同时容纳多个元素。(数组是一个数据的集合。)数组:面意思是一组数据 ③数组当中可以存基本数据类型的数据,也可以存引用数据类型的数据。 ④数组因为是引用类型,所以数组对象是堆内存当中。(数组是存储在堆当中的) ⑤数组当中如果存的是java对象的话,实际上存的是对象的引用(内存地址) ⑥数组一且创建,在java中规定,长度不可变。(数组长度不可变) ⑦数组的分类:一维数组、二维数组、三

lpblog的博客 1615

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java数组介绍(一维数组和二维数组)

Java数组介绍(一维数组和二维数组)1. 概述· 数组是存储多个变量的容器。· 存储的多个变量必须是同一种数据类型。· 数组既可以存储基本数据类型,也可以存储引用数据类型。2. 数组定义的格式· 格式1:数据类型[] 数组名。· 格式2:数据类型 数组名[]。3. 访问数组中的元素3.1 概述数组中的每个元素都是由编号的,编号从0开始,到数组的长度减1结束,通过数组名和编号的配合就能取出数组中指...

文泷Vincent的博客 1万+

【Java数组】一维数组与二维数组(附题目)

今天是七夕节,相信各位都还没有女朋友吧!那就让我们用数组new一组女朋友吧!

m0_46232425的博客 1538

java一维数组、二维数组的定义以及实例

Java数组 Java 语言中提供的数组是用来存储固定大小的同类型元素。 数组本身即为变量,长度一旦声明,就固定不变了。 基本要素: 标识符:数组名; 数组元素:存储的数据; 元素下标:从0开始,每个元素都可以被找到; 元素类型:存储数据类型,及数据类型。 数组中若未存储满时: int 输出 0; double 输出 0.0; string 输出 null。 一维数组 声明数组变量语法: 数据类型 [ ] 数组名字;//首选方法 或者 数据类型 数组名字 [ ];//效果相同,但不是首选

买米当卡的博客 1560

java一维数组、二维数组初始化

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

qq_35091353的博客 1328

java-for each遍历一维数组和二维数组

for each语法: for(type l:o){ expression; } 遍历一维数组: int[] a={4,45,6,76,8}; for(int i:a){ System.out.print(i+" "); } -&gt;4 45 6 76 8 遍历二维数组: int[][] a = {{1,2},{3,5},{9,8},{8,9},{1,2}}; //i现在为一维数组,...

StrongbyTime的博客 2169

Java基础学习——数组(1、数组概述;2、一维数组的创建及使用;3、二维数组的创建及使用)

1、数组概述 数组是具有相同数据类型的一组数据的集合。 数组中每个元素具有相同的数据类型。 在Java中同样将数组看作一个对象,虽然基本数据类型不是对象,但由基本数据类型组成的数组却是对象。 在程序设计中引入数组可以更有效的管理和处理数据。 可根据数组的维数将数组分为一维数组、二维数组··· 2、一维数组的创建及使用 一维数组实质上是一组相同类型数据的线性集合,当在程序中需要处理一组数据,或者传递一组数据时,可以应用这种类型的数组。 创建一维数组 数组作为对象允许使用new关键字进行内存分配。 在使用数

weixin_47030183的博客 518

Java中一维数组和二维数组的详解

一、数组的概述: 数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一的管理。 数组的相关概念。 2.1.数组名 2.2.元素 2.3.角标,下标,索引 2.4.数组的长度,元素的个数 数组的特点: 3.1.数组是有序排列的 3.2.数组属于引用数据类型的变量,数组的元素即可以是基本数据类型的变量,也可以是引用数据类型的变量。 3.3.创建数组对象会在内存中开辟一整块连续的空间 3.4.数组的长度一旦确定,就不能修改

路宇的博客 3937

JAVA中一维数组和二维数组的定义

在java中数组被看成是一个对象在定义数组时,有两种定义方法:int[] a 和int a[];第二种是C/C++对数组定义方式,对于JAVA建议采用第一种定义方式。总的原则:任何对象在被调用之前必须先被初始化!1 一维数组的定义  //定义包含三个元素的一维数组  //方法1,先new对象,然后再初始化每个元

gideal_wang的专栏 3万+

Java一维数组和二维数组的长度

Java数组长度 一维数组 int[] arry = {2, 3, 1, 0, 2, 5}; //长度 int len = arry.length; 二维数组 int array[][] = { {1, 4, 7, 11, 15}, {2, 5, 8, 12, 19}, {3, 6, 9, 16, 22},...

ZPeng_优快云的博客 3924

Java数组转换:一维数组转二维数组实例解析

本文介绍了Java中一维数组转换为二维数组的实例代码及解析。核心要点包括:1) 如何初始化5行3列的二维数组;2) 使用Scanner从控制台读取15个整数填充一维数组;3) 通过索引映射将一维数组元素按顺序分配到二维数组中。代码示例展示了完整的转换过程,包括数组初始化、输入读取、元素赋值和格式化输出。文章还总结了不规则二维数组初始化、Scanner使用方法和数组索引关联等核心知识点,并提供了输入验证、动态行列指定等优化建议。该实例有助于理解Java数组的基本操作和线性存储转换。

Java程序员_编程开发学习笔记_网站安全运维教程_渗透技术教程 961
上一篇: 3_1、Java基本语法数组的概述
下一篇: 3_3、Java基本语法之数组的常用算法及Arrays工具类的使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值