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
{
System.out.println(array2[i]);
array2[i]=i+9;
}for(int i=0;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.数组参数传递与返回
packagestudy;public classarray {public static voidmain(String[] args) {//TODO Auto-generated method stub
int [] array1={2,3};
System.out.print("before swap\n");for(inti :array1)
{
System.out.println(i);
}
swap(array1);
System.out.print("after swap\n");for(inti :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(inti :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;
}returnarray;
}
}
对于数组类型参数,参数值是数组的引用