Java基础知识精通二维数组的应用

 更新时间:2022年04月28日 17:11:45   作者:猿界的小皮皮  
为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来。二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列。下面简单了解一下二维数组,包括数组的声明和初始化

本文章主要讲二维数组定义,用法。

1.什么是二维数组

在二维数组多个元素为一维数组的数组就称为二维数组

2.定义格式

格式一:

元素的数据类型[][] 数组的名字 = new 元素的数据类型[二维数组的长度][一维数组的长度];

int[][] a = new int[3][2];

解释: 这个二维数组中还有3个一维数组,每个一维数组中有两个元素。

格式二:

元素的数据类型[][] 数组的名字 = new 元素的数据类型[二维数组的长度][];

int[][] a = new int[3][];

解释: 这个二维数组中还有3个一维数组,每个一维数组中元素个数不确定。

格式三:

元素的数据类型[][] 数组的名字 = {{元素1,元素2,…}, {元素1,元素2,…}, …};

int[][]	a = {{1,2,3},{4,5},{5,6,7,8}};

解释: 这个二维数组中还有3个一维数组,每个一维数组中元素个数都不一样。

  • 第一个一维数组含有3个元素。
  • 第二个一维数组含有2个元素。
  • 第三个一维数组含有4个元素。

3.二维数组的使用

package shuzu;
public class erwei {
	public static void main(String[] args) {
		int[][] a = new int[3][];
		System.out.println(a);//[[I@7852e922 ,输出数组a的地址
		//由于未初始化每个数组,所以这三个数组为null.
		System.out.println(a[0]);//null 
		System.out.println(a[1]);//null
		System.out.println(a[2]);//null
		int[] a_1 = {1,2,3}; //定义一个a_1一维数组。
		a[0] = a_1;			 //把a_1数组值赋给数组a第一个一维数组。
		int[] a_2 = {4,5};	//定义一个a_2一维数组。
		a[1] = a_2;			//把a_2数组值赋给数组a第二个一维数组。
		int[] a_3 = {6,7,8,9};
		a[2] = a_3;
		System.out.println(a[0]);//[I@4e25154f ,输出第一个一维数组的地址 
		System.out.println(a[1]);//[I@70dea4e  ,输出第二个一维数组的地址
		System.out.println(a[2]);//[I@5c647e05 ,输出第三个一维数组的地址
		//下面程序是输出数组的元素:
		System.out.println(a[0][0]);//1  输出的是第一个数组第一个元素
		System.out.println(a[0][1]);//2  输出的是第一个数组第二个元素
		System.out.println(a[0][2]);//3  输出的是第一个数组第三个元素
		System.out.println(a[1][0]);//4  同理输出的是第二个数组第一个元素
		System.out.println(a[1][1]);//5
		System.out.println(a[2][0]);//6  同理输出的是第三个数组第一个元素
		System.out.println(a[2][1]);//7
		System.out.println(a[2][2]);//8
		System.out.println(a[2][3]);//9
		}
	}

4.二维数组的遍历

for each循环语句不能自动处理二维数组中每一个元素,因为它会处理行,而每一个一维数组就是一个行,所以要循环二维数组每一个元素就要使用两个嵌套的循环,如下所示:

实例一:

// 使用格式:
for (double[] row : a)
	for(double value : row)
		do something with value
//实例:
double[][] arr = {{1,2,5,4},{4,2,5,7},{3,6,9,4}};
for (double[] row : arr)   //循环有多少个元素,这里的元素指的是一维数组,这点要搞清楚。
{
	for(double b : row)    //循环有多少个元素,这里的元素指的是每个一维数组里的元素。
		System.out.print(b+" "); //打印出每个数组的元素。
		System.out.println();    //换行
}

//输出结果:
1.0 2.0 5.0 4.0 
4.0 2.0 5.0 7.0 
3.0 6.0 9.0 4.0 

实例二:

int[][] a = {{1,2,3}, {4,5}, {5,6,7,8}};	
for(int i = 0; i < a.length; i++)		//这个结构原理跟上面的大致相同,不同的是对元素的下标有限制。
{
	for(int j = 0; j < a[i].length; j++)  //循环第i数组的元素。
		System.out.print(a[i][j] + " ");  //输出第i数组第j个元素。
	    System.out.println();			  //换行。
}

//输出结果:
1 2 3 
4 5 
5 6 7 8 

到此这篇关于Java二维数组基础知识的应用文章就介绍到这了,更多相关Java二维数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • spring整合redis消息监听通知使用的实现示例

    spring整合redis消息监听通知使用的实现示例

    在电商系统中,秒杀,抢购,红包优惠卷等操作,一般都会设置时间限制,本文主要介绍了spring整合redis消息监听通知使用,具有一定的参考价值,感兴趣的可以了解一下
    2021-12-12
  • Java实现消息轰炸的方法 附带源码

    Java实现消息轰炸的方法 附带源码

    这篇文章主要介绍了Java实现消息轰炸的方法 附带源码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Springboot传输数据时日期格式化问题

    Springboot传输数据时日期格式化问题

    这篇文章主要介绍了Springboot传输数据时日期格式化问题,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • java判断用户输入的是否至少含有N位小数的实例

    java判断用户输入的是否至少含有N位小数的实例

    下面小编就为大家分享一篇java判断用户输入的是否至少含有N位小数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Java数据库连接池的几种配置方法(以MySQL数据库为例)

    Java数据库连接池的几种配置方法(以MySQL数据库为例)

    这篇文章主要介绍了Java数据库连接池的几种配置方法(以MySQL数据库为例) 的相关资料,需要的朋友可以参考下
    2016-07-07
  • Mybatis报错日志BindingException的解决

    Mybatis报错日志BindingException的解决

    本文主要介绍了Mybatis报错日志BindingException的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java内部类的继承(全)

    Java内部类的继承(全)

    这篇文章主要介绍了Java内部类的继承,大家都知道JAVA内部类的构造器必须连接指向其外围类对象的引用,所以在继承内部类的时候,需要在导出类的构造器中手动加入对基类构造器的调用,需要的朋友可以参考下
    2015-07-07
  • java弱口令检测机制解析

    java弱口令检测机制解析

    这篇文章主要介绍了java弱口令检测机制,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 支撑Java NIO与NodeJS的底层技术

    支撑Java NIO与NodeJS的底层技术

    这篇文章主要为大家详细介绍了支撑Java NIO与NodeJS的底层技术,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • springboot ElasticSearch如何配置自定义转换器ElasticsearchCustomConversions

    springboot ElasticSearch如何配置自定义转换器ElasticsearchCustomConver

    这篇文章主要介绍了springboot ElasticSearch如何配置自定义转换器ElasticsearchCustomConversions问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论