數(shù)組常用方法:(這些方法是Arrays類下的)
toString():將數(shù)組轉(zhuǎn)換成一個(gè)字符串
sort():對(duì)數(shù)組進(jìn)行升序排序
binarySearch():二分法查找數(shù)組中的元素,返回指定數(shù)組中指定元素對(duì)應(yīng)的索引。使用前提:進(jìn)行查找的是一個(gè)有序數(shù)組
equals():比較兩個(gè)數(shù)組中的元素是否相等。數(shù)組元素個(gè)數(shù)、元素順序都相同則返回true。 另外,如果兩個(gè)數(shù)組引用都是null,則它們被認(rèn)為是相等的
copyOf():復(fù)制數(shù)組,從下標(biāo)0開(kāi)始截取一定長(zhǎng)度,返回截取出來(lái)的新數(shù)組
copyOfRange():復(fù)制數(shù)組,從一段區(qū)間的下標(biāo)開(kāi)始截取,返回截取出來(lái)的新數(shù)組
fill():填充數(shù)組。fill(arr,ele):將整個(gè)數(shù)組以元素ele填充。fill(arr,m,n,ele):區(qū)間[m,n)以元素ele填充,從下標(biāo)m開(kāi)始,到下標(biāo)n-1結(jié)束
import java.util.Arrays;
public class TestArray12{
public static void main(String[] args){
//給定一個(gè)數(shù)組
int[] arr = {22,99,123,45,450,66,888};
//toString:對(duì)數(shù)組進(jìn)行遍歷,返回?cái)?shù)組轉(zhuǎn)換成的一個(gè)字符串
System.out.println(Arrays.toString(arr));
//binarySearch:二分法查找---返回指定數(shù)組中指定元素對(duì)應(yīng)的索引,使用前提:查找的是一個(gè)有序的數(shù)組
//對(duì)無(wú)序數(shù)組查找,不能返回元素正常對(duì)應(yīng)索引
System.out.println(Arrays.binarySearch(arr,450));
//sort:升序排序
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
//binarySearch需要對(duì)排序后的數(shù)組進(jìn)行元素查找
System.out.println(Arrays.binarySearch(arr,450));
//copyOf:完成數(shù)組的復(fù)制,從下標(biāo)0開(kāi)始,截取3位
int[] arr2 = Arrays.copyOf(arr,3);
System.out.println(Arrays.toString(arr2));
//copyOfRange:區(qū)間復(fù)制,截取區(qū)間[2,6),包含下標(biāo)2,不包含下標(biāo)6
int[] arr3 = Arrays.copyOfRange(arr,2,6);
System.out.println(Arrays.toString(arr3));
//equals:比較兩個(gè)數(shù)組的值是否一樣
int[] arr4 = {1,2,450,666};
int[] arr5 = {1,2,450,666};
//equals比較的是數(shù)組中相同下標(biāo)每個(gè)元素的值是否相等
System.out.println(Arrays.equals(arr4,arr5));
//== 比較的是arr3,arr4兩個(gè)變量值是否相等,arr3,arr4存儲(chǔ)的是數(shù)組對(duì)應(yīng)的地址值,地址不同,比較結(jié)果不等
System.out.println(arr4 == arr5);
//fill:填充數(shù)組
//整個(gè)數(shù)組填充某個(gè)值
int[] arr6 = {11,33,45,66,88,22,99};
Arrays.fill(arr6,666);
System.out.println(Arrays.toString(arr6));
//數(shù)組某個(gè)區(qū)間填充某個(gè)值
int[] arr7 = {11,33,45,66,88,22,99};
Arrays.fill(arr7,2,5,888);
System.out.println(Arrays.toString(arr7));
}
}
打印結(jié)果:

還有一個(gè)復(fù)制數(shù)組的方法:arraycopy(scrArr,m,destArr,n,length),該方法是System類下的
scrArr:源數(shù)組
m:源數(shù)組要開(kāi)始復(fù)制的位置(下標(biāo))
destArr:目標(biāo)數(shù)組
n:目標(biāo)數(shù)組要復(fù)制到的位置(下標(biāo))
length:要復(fù)制的長(zhǎng)度
例子:
import java.util.Arrays;
public class TestArray13{
public static void main(String[] args){
//數(shù)組復(fù)制System.arraycopy(scrArr,m,destArr,n,length) ,
//源數(shù)組,源數(shù)組要開(kāi)始復(fù)制的位置,目標(biāo)數(shù)組,目標(biāo)數(shù)組要復(fù)制過(guò)去的位置,要復(fù)制的長(zhǎng)度
//給定一個(gè)數(shù)組,原數(shù)組
int[] srcArr = {11, 33, 22, 66, 88, 99, 450, 110};
//目標(biāo)數(shù)組
int[] destArr = new int[12];
//復(fù)制
System.arraycopy(srcArr,3,destArr,5,4);
//遍歷輸出數(shù)組
System.out.println(Arrays.toString(destArr));
}
}
打印結(jié)果:
