数组常用方法:(这些方法是Arrays类下的)
toString():将数组转换成一个字符串
sort():对数组进行升序排序
binarySearch():二分法查找数组中的元素,返回指定数组中指定元素对应的索引。使用前提:进行查找的是一个有序数组
equals():比较两个数组中的元素是否相等。数组元素个数、元素顺序都相同则返回true。 另外,如果两个数组引用都是null,则它们被认为是相等的
copyOf():复制数组,从下标0开始截取一定长度,返回截取出来的新数组
copyOfRange():复制数组,从一段区间的下标开始截取,返回截取出来的新数组
fill():填充数组。fill(arr,ele):将整个数组以元素ele填充。fill(arr,m,n,ele):区间[m,n)以元素ele填充,从下标m开始,到下标n-1结束
import java.util.Arrays;
public class TestArray12{
public static void main(String[] args){
//给定一个数组
int[] arr = {22,99,123,45,450,66,888};
//toString:对数组进行遍历,返回数组转换成的一个字符串
System.out.println(Arrays.toString(arr));
//binarySearch:二分法查找---返回指定数组中指定元素对应的索引,使用前提:查找的是一个有序的数组
//对无序数组查找,不能返回元素正常对应索引
System.out.println(Arrays.binarySearch(arr,450));
//sort:升序排序
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
//binarySearch需要对排序后的数组进行元素查找
System.out.println(Arrays.binarySearch(arr,450));
//copyOf:完成数组的复制,从下标0开始,截取3位
int[] arr2 = Arrays.copyOf(arr,3);
System.out.println(Arrays.toString(arr2));
//copyOfRange:区间复制,截取区间[2,6),包含下标2,不包含下标6
int[] arr3 = Arrays.copyOfRange(arr,2,6);
System.out.println(Arrays.toString(arr3));
//equals:比较两个数组的值是否一样
int[] arr4 = {1,2,450,666};
int[] arr5 = {1,2,450,666};
//equals比较的是数组中相同下标每个元素的值是否相等
System.out.println(Arrays.equals(arr4,arr5));
//== 比较的是arr3,arr4两个变量值是否相等,arr3,arr4存储的是数组对应的地址值,地址不同,比较结果不等
System.out.println(arr4 == arr5);
//fill:填充数组
//整个数组填充某个值
int[] arr6 = {11,33,45,66,88,22,99};
Arrays.fill(arr6,666);
System.out.println(Arrays.toString(arr6));
//数组某个区间填充某个值
int[] arr7 = {11,33,45,66,88,22,99};
Arrays.fill(arr7,2,5,888);
System.out.println(Arrays.toString(arr7));
}
}
打印结果:
还有一个复制数组的方法:arraycopy(scrArr,m,destArr,n,length),该方法是System类下的
scrArr:源数组
m:源数组要开始复制的位置(下标)
destArr:目标数组
n:目标数组要复制到的位置(下标)
length:要复制的长度
例子:
import java.util.Arrays;
public class TestArray13{
public static void main(String[] args){
//数组复制System.arraycopy(scrArr,m,destArr,n,length) ,
//源数组,源数组要开始复制的位置,目标数组,目标数组要复制过去的位置,要复制的长度
//给定一个数组,原数组
int[] srcArr = {11, 33, 22, 66, 88, 99, 450, 110};
//目标数组
int[] destArr = new int[12];
//复制
System.arraycopy(srcArr,3,destArr,5,4);
//遍历输出数组
System.out.println(Arrays.toString(destArr));
}
}
打印结果: