关于数组概念

数组的定义?

数组,(Array)。数组是一个用来储存相同数据类型元素的一个数据结构且长度固定(在创建数组的时候就确定了长度)。
数组是一个复合(引用)的数据类型;
数组是一个集合;一个数组中可以同时存储多个相同类型的数据;

## 特点
1.数据类型相同
2.长度固定

如何定义一个数组?

  1. 数据类型[] a;
    2.int[] a=new int[5];

数组的操作

1.创建数组时需要先为数据开辟空间(指定长度),数组的长度一旦确定,不能更改;我们可以通过下标来访问数组中的元素;下标从0开始,一直到 (数组长度-1);
2.通过length可以获得数组的长度;这个length属性是只读的,不能修改,只能读。
3.如果我们在访问数据的元素时,使用了一个不在有效范围的下标,那么运行时将会抛出一个数组下标越界的异常java.lang.IndexOutOfBoundsException

数组的初始化

初始化数组的时候分为静态初始化和动态初始化
静态初始化:
开辟数组空间的时候直接赋值

int[] score=new int[]{4,5,6,87,9};
		int[] score={4,56,7,9};

动态初始化:

int[] a=new int[10];
		a[x]=xxx;

注意
系统会为动态创建的数组的每个元素分配一个默认值
byte、short、int、long类型的数组,元素默认是0
float、double类型的数组,元素默认为0.0
char类型的数组,元素默认为\u000 空字符
boolean 类型的数组、元素默认为false
引用类型的数组,元素默认为null。
比如Date[] date = new Date[];

增强的for循环(集合专用)

增强的for循环是JDK5的新特性,它的作用是用来遍历数组集合中的数据
语法
for(数据类型 变量:集合名){

}
int[] array={4,56,7,8,90};

int[] array={4,56,7,8,90};
for(int i:array){
	System.out.println(i);	
}

for-each的使用限制
1.这个循环只能用于对集合的遍历
2.只能全部遍历,不能只取其中的一部分;

数组的应用

数组的应用有:拷贝、排序、搜索、反转等
首先我们来谈谈拷贝,拷贝是将一个数组的部分或全部元素复制到另一个数组相关位置,因为 数组的拷贝是一个大众性的问题所以JDK为我们提供了一系列数组复制的方法。其中Arrays类中 有一个方法是copyOf(源数组,长度),将源数组从指定位置复制到一个新的数组中。

package Primary;

import java.util.Arrays;

public class ArrayCopy {

	public static void main(String[] args) {
		int[] a = new int[] {1,5,4,4,5,6,6,4,56,4};
		int[] b = new int[a.length];
		//使用copyOf方法把a从0号复制3内容到a数组中
		b = Arrays.copyOf(a, 3);
		for(int i:b){
			System.out.println(i);
		}
	}

}

此时的运行结果是
在这里插入图片描述
在实际开发中,我们会遇到各种各样复杂的数组操作,当我们执行更复杂的操作时,System方法也为我们也提供了方法 arraycopy

//复杂的数组拷贝方法
		int[] c = new int[a.length] ;
		System.arraycopy(a, 3, c,0,1);//把a从下表为3的位置开始复制4个到c数组(从0号位置开始)
		System.out.println(Arrays.toString(c));

这样打印的结果是
[4, 0, 0, 0, 0, 0, 0, 0, 0, 0]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值