第七章 二维数组

本文详细介绍了Java中Arrays类的应用,包括toString()、sort()、equals()、fill()、copyOf()及binarySearch()方法的使用。此外,还深入探讨了二维数组的语法、内存分配、初始化、遍历以及元素的默认初始值。通过实例展示了如何操作二维数组,以及如何查找元素。
摘要由CSDN通过智能技术生成

Java面向对象基础

第七章 二维数组

一、Arrays类的应用

1、Arrays类的各种方法

如果直接使用System.out.println()将数组再控制台进行输出,是无法得到该数组的每一个元素的值,而得到的是形如[I@1c4af82c这样的结果。
在这里插入图片描述
为了能够更加快速的在控制台上输出该数组中的每一个元素的值,Java提供了一个Java.util.Arrays的工具类,来能帮助我们对数组进行快速的操作。
在这里插入图片描述

2、Arrays类方法的代码实现
int[] score = {67, 2, 75, 21, 89};
		int[] arr1 = {1,6,89,5};
		int[] arr2 = {1,6,89,5,6};
		int[] arr3 = {1,6,789,5,6};
		//控制台输出  toString()方法
		System.out.println("数组score为:"+Arrays.toString(score));
		//排序  sort()方法
		Arrays.sort(score);
		System.out.println("数组score排序后为: "+Arrays.toString(score));
		//判断是否相等  equals()方法
		boolean isEquals = Arrays.equals(arr1, arr2);
		System.out.println("arr1和arr2相等: "+isEquals);
		//快速填充 fill()方法
		Arrays.fill(arr3, 100);
		System.out.println("经过替换后,arr3的值为: "+Arrays.toString(arr3));
		//复制一个数组 copyOf()方法
		int[] arr4 = Arrays.copyOf(arr1, 3);
		System.out.println("复制arr1中3个元素的arr4数组为: "+Arrays.toString(arr4));
		  //当复制的个数大于数组总长度时:
		     //多出的元素就会用默认值填充
		int[] arr5 = Arrays.copyOf(arr1, 5);
		System.out.println("复制arr1中3个元素的arr4数组为: "+Arrays.toString(arr5));
		//查询元素下标的值 binarySerach()
		   //要求,所要查找的数组必须为从小到大排好的;
		System.out.println("score数组中是否存在6这个元素: "+Arrays.binarySearch(score, 2));

二、二维数组

1、语法格式

数据类型[ ] [ ] 数组名;
或者
数据类型 数组名[ ] [ ];

int [ ][ ] scores;   //定义二维数组
scores=new int[5][50];  //分配内存空间
//或者
int [ ][ ] scores = new int[5][50];

(1)数据类型为数组元素的类型;
(2)“[][]”用于表示定义了一个二维数组,通过多个下标进行数据访问。
(3)数组是一个引用数据类型。
(3)Java中只有一维数组。虽然从语法上看Java支持多维数组,但从内存分配原理来看,Java只有一维数组,没有多维数组。

2、二维数组与内存

在这里插入图片描述
在这里插入图片描述

二维数组实际上是一个一维数组,它的每个元素又是一个一维数组。

3、二维数组的初始化

在这里插入图片描述

4、二维数组的遍历
//初始化一个int[]类型的二维数组
		//第一个[]表示最外层的数组,而第二个[]则表示该数组中每个元素的数组
		//创建二维数组,外层为3,内层不确定
		int[] [] numss = new int[3][];
		//创建一维数组
		int[] nums1 = {5,6,8,4,6};
		numss[0] = nums1;
		int[] nums2 = {7,6};
		numss[1] = nums2;
		int[] nums3 = {5,6,8};
		numss[2] = nums3;
		
		//要想获得二维数组中的某个值,必须首先确定外面数组的下标,再确定内层的数组下标
		int num = numss[0][2];
		System.out.println(num);
		//循环遍历二维数组
		//首先循环外层,再循环内层
		for(int i = 0;i<numss.length;i++) {
			//根据外层数组的下标,获得该元素上所存储的内存数组
			int[] nums = numss[i];
			for(int j =0;j<nums.length;j++) {
				System.out.print(nums[j]);
			}
		}
5、二维数组元素的默认初始值

引用数据类型的默认值都是null。
在这里插入图片描述
在这里插入图片描述
因此可得:
针对第一种:int[][] arr = new int[4][3];
外层元素的初始化值为:地址值
内层元素的初始化值为:与一维数组初始化情况相同。
针对第二种:int[][] arr = new int[4][];
外层元素的初始化值为:null
内层元素的初始化值为:不能调用,否则报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值