1. 使用System的類方法實現數組拷貝
public class Temp {
public static void main (String args[]) {
int array_a [] = new int [] {5,34,15,27,96,63,78,47,50,82};
int array_b [] = new int [] {0,0,0,0,0,0,0,0,0,0};
//數組拷貝。原型:static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
//注意,是數組拷貝,而不是插入。被拷貝的內容會替換原數組的內容。
System.arraycopy(array_b, 2, array_a, 3, 5);
for (int x : array_a)
System.out.print(x + " ");
//輸出:5 34 15 0 0 0 0 0 50 82
//如果選取的srcPos或destPos後面沒有length個對象,則會報java.lang.ArrayIndexOutOfBoundsException
}
}
2. 使用java.util.Arrays的類方法實現數組排序、查找、複製和賦值
public class Temp {
public static void main (String args[]) {
int array_a [] = new int [] {5,34,15,27,96,63,78,47,50,82};
//數組排序
java.util.Arrays.sort(array_a);
for (int x : array_a)
System.out.print(x + " ");
//輸出:5 15 27 34 47 50 63 78 82 96
//數組查找
//這個方法查詢key元素值在a數組中出現的索引;如果a數組不包含key元素值,則返回-1.調用該方法時要求數組中元素已經按升序排列,這樣才能得到正確結果
System.out.println(java.util.Arrays.binarySearch(array_a, 34)); //輸出:3
//複製新數組
//這個方法將會把original數組複製成一個新數組,其中length是新數組的長度。如果length小於original數組的長度,則新數組就是原數組的前面length個元素;如果length大於original數組的長度,則新數組的前面元素就是原數組的所個元素,後面補充0(數值型)、false(布爾型)或者null(引用型)
int array_new [] = java.util.Arrays.copyOf(array_a, 12);
for (int x : array_new)
System.out.print(x + " ");
//輸出:5 15 27 34 47 50 63 78 82 96 0 0
//按範圍複製新數組
//這個方法與前面方法相似,但這個方法只複製original數組的from索引到to索引的元素
array_new = java.util.Arrays.copyOfRange(array_a, 0, 3);
for (int x : array_new)
System.out.print(x + " ");
//輸出:5 15 27
//賦值(所有元素)
java.util.Arrays.fill(array_a, 0);
for (int x : array_a)
System.out.print(x + " ");
//輸出:0 0 0 0 0 0 0 0 0 0
//賦值(範圍元素)
java.util.Arrays.fill(array_a, 0, 5, 1);
for (int x : array_a)
System.out.print(x + " ");
//輸出:1 1 1 1 1 0 0 0 0 0
}
}