Day6数组

Day6 数组

第一节:数组的概念

一组连续的存储空间,存储多个相同数据类型的值

1.1数组的特点:

1、长度固定。    当创建的数组分配长度后,则该数组长度固定不变
2、类型相同      数组在创建初给定的类型,则数组当中存放的数据一定是该类型、统一

1.2数组的创建

一、声明并分配空间

1.2.1先声明、再分配空间

​ 例:

int[] a;
a = new int[5];
//先声明一个int类型的数组a,再为其分配长度为5的存储空间
1.2.2声明并分配空间

例:

int[] a = new int[5];
//声明一个int类型的数组a,并为其分配长度为5的存储空间
1.2.3声明并赋值 (繁)

​ 例:

int[] a = new int[]{4,3,5,2,1};
//声明一个int类型的数组a,其长度由{}里的数组的元素个数来决定。
1.2.4声明并赋值 (简)

例:

int[] a ={4,3,5,2,1};
//声明一个int类型的数组a,其长度也是由{}里的 数组的元素个数来决定。
这种方式对比1.2.3里,步骤简写。择自己习惯来决定使用哪种方式

1.3数组的组成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d8Ko6I2H-1577615456425)(F:\1905\1905所有内容\笔记\Day6\数组的组成.png)]

1.3.1数组中每个数据格都是数组的元素。

1.3.2对数组中每个元素的赋值或取值,都称为对元素的访问

1.3.3访问元素时,需要使用下标(从0开始,依次+1,自动生成)

1.3.4访问的语法: 数组名[下标] //a[1] 访问的是a数组中第二个元素

1.4数组的遍历

从头到尾,逐一对数组中的每个元素进行访问

例:

int[] a = {4,3,5,2,1};
for(int i = 0; i <a.length;i++){//初识部分从0开始,是因为数组的下标就是从0开始
    System.out.println(a[i]);
    
    
}
a.length  是用于获取数组的长度(数组元素的个数)
最后一个位置的元素的下标是数组的长度-1
    
   

注意:数组的下标为0~数组的长度-1,如若超出这个范围,则会报:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mNt5WqCA-1577615456427)(F:\1905\1905所有内容\笔记\Day6\数组下标越界.png)]

特别注意:

常用数组的默认值

int ------0

double -----0.0

char --------’\u0000’

boolean- ------- false

String ------- NULL

第二节:数组的扩容

当创建数组时,必须显示指定长度,并且在创建之后长度不可改变

扩容:

1、创建一个大于源数组的新数组

2、把原数组的元素依次复制到新数组。

2.1通过循环的方式:

//old数组
		int[] old = new int[]{4,3,5,2,1};
		//1.创建新数组  
		int[] xin = new int[old.length * 2];
		//2.把old数组的数组元素赋给新数组
		for(int i =0;i<old.length;i++){
			xin[i] = old[i];
		}
		old = xin;//把新数组  给 旧数组   替换
		for(int j = 0;j<oldArrays.length;j++){
			System.out.println(oldArrays[j]);
		}
		System.out.println();

2.2System.arraycopy();

		//old数组
		int[] old = new int[]{4,3,5,2,1};
		int[] xin = new int[old.length*2];
		//               源  起 目 起  源长度
		System.arraycopy(old,0,xin,0,old.length);
		old = xin;
		for(int i = 0;i<old.length;i++){
			System.out.println(old[i]);
			
		}

2.3java.util.Arrays;使用Arrays帮助类

	
	public static void main(String[] args){
		int[] old = {4,3,5,2,1};
		int[] xin = expand(old,old.length*2);
		old = xin;
		for(int i = 0;i<old.length;i++){
			System.out.println(old[i]);
			
		}
	}
	//但凡要改变数组的长度,请调用我
						//要改变的数组   改变之后的长度
	public static int[] expand(int[] arrays,int length){
		int[] newArrays = Arrays.copyOf(arrays,length);
		return newArrays;
	}

地址的替换:

数组作为引用类型之一,其变量存放的是地址。

当新数组复制给旧数组的时候,旧数组的地址发生了改变。原数组的地址不再引用。进入闲置

第三节:数组应用场景

3.1数组作为函数的参数

							//数组作为函数的参数,接收调用者传递的实参,实际拿到的是地址
	public static void printArrays(int[] oldArrays){
		for(int j = 0;j<oldArrays.length;j++){
			System.out.println(oldArrays[j]);
		}
		System.out.println();
	}

3.2数组作为函数的返回值

public static int[] expand(int[] arrays,int length){
		int[] newArrays = Arrays.copyOf(arrays,length);
		return newArrays;
	}
//数组作为函数的返回值,返回给调用者的是新数组的地址。
}

### 3.2数组作为函数的返回值

```java
public static int[] expand(int[] arrays,int length){
		int[] newArrays = Arrays.copyOf(arrays,length);
		return newArrays;
	}
//数组作为函数的返回值,返回给调用者的是新数组的地址。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值