Java语言学习七(数组)

程序基本上都是由数据结构和算法组成,数据结构需要定义变量存储,当需要很多存储很多数据时,需要定义很多变量,代码编写非常繁琐,所以引入数组,数组可以存放一组数据,定义和使用都比较容易。

在这里插入图片描述
数组主要解决很多数据存储和管理的问题,避免定义很多变量。
数组是分类型,特定类型的数组只能存储特定类型的数据,Java有八种基本数据类型(boolean,byte,char,short,int,float,long,double),可以定义这些类型的数组。

数组定义

在这里插入图片描述
数组定义使用[]方括号,可以将[]放在数据类型后面,也可以放在数组引用名称后面。
定义数组分为两步理解,首先定义数组的引用,再分配数据内存空间,
1、可以先定义数组引用,在使用数组时分配内存空间。
int[] a;
int a[];
2、可以定义数据引用的同时,分配数据的内存空间。
int[] a = new int[10];
int a[] = new int[10];
3、可以定义数据引用的同时,分配数据内存空间并赋值。
int[] a = new int[]{1,2,3}
int a[] = {1,2,3}

数组遍历

上一节学习过Java循环,遍历数组需要使用Java循环结构,访问数组使用数组的下标,也就是数组元素的序号,从0开始计数,数组的第一个元素序号为0,第二个元素序号为1,以此类推。数组有长度属性,返回数组中元素的个数。
在这里插入图片描述

public class Test 
{
	public static void main(String[] args) throws Exception
	{
		int[] a = new int[]{1,2,3};
		for(int i=0;i<a.length;i++)
			System.out.println("第"+(i+1)+"个元素是:"+a[i]);
	}
}

在这里插入图片描述

数组存储

数组存储使用连续的地址空间,在分配数据地址空间时,一次性分配所有的地址空间,以后无法再扩容,也就是说数组的大小是固定的,当数组已满无法再扩容大小。
在这里插入图片描述
数组属于对象,它存储在JVM的堆中,数组引用或数组变量,只是指向Java内存堆的一个标识,当数组变量间相互赋值时,其实是将内存堆的地址指向的赋值。

在这里插入图片描述

数组初始值

定义数组并分配地址空间后,根据数组类型分配数组元素的默认值,比如int类型的数据,元素的默认值是0.
在这里插入图片描述

二维数组

一维数组中的元素也是一维数组,此数组就是二维数组。
在这里插入图片描述
二维数据遍历需要使用嵌套循环,首先循环第一维数组,获取第一维数组元素后,再使用循环遍历第二维数组

public class Test 
{
	public static void main(String[] args) throws Exception
	{
		int[][] a = new int[3][3];
		a[0][0] = 1;
		a[0][1] = 2;
		a[0][2] = 3;
		a[1][0] = 10;
		a[1][1] = 20;
		a[1][2] = 30;
		a[2][0] = 100;
		a[2][1] = 200;
		a[2][2] = 300;
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a[i].length;j++)
			{
				System.out.print("("+i+","+j+")="+a[i][j]+"\t");
			}
			System.out.println();
		}
	}
}

在这里插入图片描述

高维数组

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

不规则数组

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值