1.通過數組名進行賦值,其實質是引用
比如數組array1和數組array2
若執行array2=array1,實際上將array1的引用傳遞給array2,array1和array2 最后都指向同一個數組,array2原來引用的數組被回收。
例如:
int [] array1={1,2,3}; int [] array2=new int[10]; array2=array1; for(int i=0;i<array2.length;i++) { System.out.println(array2[i]); array2[i]=i+9; } for(int i=0;i<array1.length;i++) { System.out.println(array1[i]); }
在第一個循環中,修改array2的元素值,在第二個循環中輸出的array1的值也會有相應的變化,說明array1和array2指向同一數組。
2.復制數組的方法
a.通過循環逐個復制數組中的元素
b.使用System類中靜態方法arraycopy(注意arraycopy違反命名習慣)
System.arraycopy(src, srcPos, dest, destPos, length);
3.匿名數組
new elementType [] {value0,value1,value2....}
比如new int [] {1,2,3,5};
4.另類for循環
for(elementsType variable :array)
{
System.out.print(variable);
}
5.數組參數傳遞與返回
package study; public class array { public static void main(String[] args) { // TODO Auto-generated method stub int [] array1={2,3}; System.out.print("before swap\n"); for(int i :array1) { System.out.println(i); } swap(array1); System.out.print("after swap\n"); for(int i :array1) { System.out.println(i); } int [] result =reverse(new int[]{1,2,3,4,5,6,7}); //anonymous array System.out.print("after reverse\n"); for(int i :result) { System.out.println(i); } } public static void swap(int [] array) { int temp=array[0]; array[0]=array[1]; array[1]=temp; } public static int [] reverse (int [] array) { for(int i=0;i<=(array.length-1)/2;i++) { int temp = array[i]; array[i]=array[array.length-1-i]; array[array.length-1-i]=temp; } return array; } }
對於數組類型參數,參數值是數組的引用