Java數(shù)組操作的常用工具類
Java提供了的Arrays類里包含了一些static修飾方法可以直接操作數(shù)組,這個Arrays類里包含了提供了如下幾個static修飾的方法(static修飾的方法可以直接通過類名調(diào)用):
int binarySearch(type[] a,type key):這個方法查詢key元素值在a數(shù)組中出現(xiàn)的索引;如果a數(shù)組不包含key元素值,則返回-1.調(diào)用該方法時要求數(shù)組中元素已經(jīng)按升序排列,這樣才能得到正確結(jié)果。
binarySearch(type[] a,int fromIndex,int toIndex,type key):這個方法與前一個方法類似,但它只搜索a數(shù)組中formIndex到toIndex索引的元素。調(diào)用該方法時要求數(shù)組中元素已經(jīng)按升序排列,這樣才能得到正確結(jié)果。
type[] copyOf(type[] original,int newLength):這個方法將會把original數(shù)組復(fù)制成一個新數(shù)組,其中l(wèi)ength是新數(shù)組的長度。如果length小于original數(shù)組的長度,則新數(shù)組就是原數(shù)組的前面length個元素;如果length大于original數(shù)組的長度,則新數(shù)組的前面元素就是原數(shù)組的所個元素,后面補充0(數(shù)值型)、false(布爾型)或者null(引用型)。
type[] copyOfRange(type[] original,int from,int to):這個方法與前面方法相似,但這個方法只復(fù)制original數(shù)組的from索引到to索引的元素。
boolean equals(type[] a,type[] a2):如果a數(shù)組和a2數(shù)組的長度相等,而且a數(shù)組和a2數(shù)組的數(shù)組元素也一一相同,該方法將返回true.
void fill(type[] a,type val):該方法將會把a數(shù)組所有元素值都賦值為val.
void fill(type[] a,int fromIndex, int toIndex, type val):該方法與前一個方法的作用相同,區(qū)別只是該方法僅僅將a數(shù)組的fromIndex到toIndex索引的數(shù)組元素賦值為val.
void sort(type[] a):該方法對a數(shù)組的數(shù)組元素進行排序。
void sort(type[] a,int fromIndex,int toIndex):該方法與前一個方法相似,區(qū)別是該方法僅僅對fromIndex到toIndex索引的元素進行排序。
String toString(type[] a):該方法將會一個數(shù)組轉(zhuǎn)換成一個字符串。該方法按順序把多個數(shù)組元素連綴在一起,多個數(shù)組元素使用英文逗號(,)和空格隔開。(利用該方法可以很清楚地看到各數(shù)組元素)
下面程序示范了Arrays類的用法:public class TestArrays
{ public static void main(String[] args) { //定義一個a數(shù)組 int[] a = new int[]{3, 4 , 5, 6}; //定義一個a2數(shù)組 int[] a2 = new int[]{3, 4 , 5, 6}; //a數(shù)組和a2數(shù)組的長度相等,每個元素依次相等,將輸出true System.out.println("a數(shù)組和a2數(shù)組是否相等:" + Arrays.equals(a , a2)); //通過復(fù)制a數(shù)組,生成一個新的b數(shù)組 int[] b = Arrays.copyOf(a, 6); System.out.println("a數(shù)組和b數(shù)組是否相等:" + Arrays.equals(a , b)); //輸出b數(shù)組的元素,將輸出[3, 4, 5, 6, 0, 0] System.out.println("b數(shù)組的元素為:" + Arrays.toString(b)); //將b數(shù)組的第3個元素(包括)到第5個元素(不包括)賦為1 Arrays.fill(b , 2, 4 , 1); //fill方法可一次對多個數(shù)組元素進行批量賦值 //輸出b數(shù)組的元素,將輸出[3, 4, 1, 1, 0, 0] System.out.println("b數(shù)組的元素為:" + Arrays.toString(b)); //對b數(shù)組進行排序 Arrays.sort(b); //輸出b數(shù)組的元素,將輸出[0, 0, 1, 1, 3, 4] System.out.println("b數(shù)組的元素為:" + Arrays.toString(b)); } } |
注意:Arrays類處于java.util包下,為了在程序中使用Arrays類,必須在程序中導(dǎo)入java.util.Arrays類。
除此之外,在System類里也包含了一個static void arraycopy(Object src,int srcPos,Object dest, int destPos,int length)方法,該方法可以將src數(shù)組里的元素值賦給dest數(shù)組的元素,其中srcPos指定從src數(shù)組的第幾個元素開始賦值,length參數(shù)指定將src數(shù)組的多少個元素賦給dest數(shù)組的元素。