java数组的基础知识点总结
数组概述
数组(array)是一种数据结构,包含相同类型的一组数据。他们在内存中的连续的储存。
数组的声明
类型[ ] 数组变量名;
类型 数组变量名[ ];
数组的实例化和初始化
new运算符自动将数组的元素初始化为相应的默认值:简单数据类型数组元素的默认值设置为0;char类型数组元素被初始化为0(\u0000);boolean类型数组元素被初始化为false;引用类型默认值为null。
数组变量名=new 数组类型[数组元素个数]; //创建(实例化)数组
类型[ ] 数组变量名 = new 数组类型[数组元素个数];//同时声明与创建数组
数组变量名 = new 数组类型[ ]{元素0,元素1,...,元素n-1};//创建并初始化
类型[ ] 数组变量名 = new 数组类型[ ]{元素0,元素1,...,元素n-1};//同时声明与创建数组初始化
类型[ ] 数组变量名 = {元素0,元素1,...,元素n-1};//同时声明与创建数组初始化
数组的基本访问操作
通过length属性获取数组的长度
通过数组名[下标]的方式访问数组中的数据---》其中能访问的数据。
会产生以下几种异常
-
数组的索引越界异常(索引为负或者超过数组长度)
-
空指针异常 int[ ] 数组名={1,5,8}; 数组名[]=null;
null是“空”的意思,表示将数组名中原本代表的地址清除
此时再输入:System.out.println(数组名[]);
将会出现异常
foreach方法遍历一维数组
int[ ] arr = {1,2,3,4,5};
for(int i:arr){
System.out.print(i+“ ”);
}
输出结果为
1 2 3 4 5
多维数组
基本概念与使用方法均与一维数组类似
JAVA类库中操作数组的类和方法
java.util.Arrays
名称 | 说明 |
---|---|
sort(数组名)或 sort(数组名,起始索引,结束索引(键值) | 按升序排序数组。如果指定范围则从起始索引(包括)到结束索引(不包括)。可能会发生下标越界与null指针异常 |
binarySearch(数组名,键值)或 binarySearch(数组名,起始索引,结束索引,键值) 在指定索引范围内搜索 | 使用二分搜索法查找,注意要先排序,搜索键包含在数组中时返回的是键值在数组中位置的下标,否则返回(-(插入点)-1) |
equals(数组名1,数组名2) | 两个数组以相同的顺序包含相同的元素,则两个数组是相等的。注:两个数组引用均为null,则认为它们是相等的。 |
fill(数组名,值)或 fill(数组名,起始索引,结束索引,值)//填充指定索引范围 | 以“值”填充数组,指定范围时就从起始索引(包括)到结束索引(不包括)以“值” |
copyOf(数组名,新长度) | 复制数组,截取或用默认值填充(如有必要),结果位相同数据类型的长度为指定长度的长度。注:只适用与一维数组 int[] arr={1,2,3,4}; int [] brr=Arrays.copyOf(arr,3); |
copyOfRange(数组名,起始索引,结束索引) | 复制数组的指定内容:从起始索引(包括)到结束索引(不包括) |
toString(数组名)deepToString(数组名)//打印多维数组 | 返回数组内容的字符串表示形式 |
System.arraycopy
System.arraycopy(src,srcPos,dest,destPos,length)是System类提供的一个静态方法,用他来实现数组间的复制,以及数组的扩张。
- src:源数组。
- srcPos:源数组要复制的起始位置。
- dest:目的数组。
- destPos:目的数组放置的起始位置。
- length:复制的长度。
数组名.clone()
优点是简单,缺点是不灵活,不能直接运用与一维数组。
int[ ] arr = {1,2,3,4};
int[ ] brr = arr.clone();