数组
数组的输出
public static String toString(int[] a)
数组是一个引用类型,所以要区分相等和复制的区别
例如:
int [] a={1,2},b;
b = a;
那么 a和b值相同,即 a 的引用和 b 的引用相同。a和b的内存空间相同。
显然,若想要复制数组的值,即改变一个数组的值,另一个数组不会发生改变,则直接数组引用赋值(相等)就会出现错误。
数组复制的方法 :
- arrayCopy方法
public static void arraycopy(sourceArray,int index1,copyArray, int index2,int length)
从sourceArray数组的index1开始的lenth个元素中的数据复制到数组copyArray中
public static void main(String[] args) {
int a[] ={1,2,3,4,5,6};
int b[] ={0,0,0,0,0,0};
System.arraycopy(a,0,b,a,length);
System.ont,println("输出b的值");
System.out.println(Array.toString());
}
- copyOf方法
public static double[] copy(double[] original,int newLength);
复制从0开始到newLength-1个长度,如果newLength长度大于original数组长度,则newLength长度之后的取默认值,一般为NULL。
int a[]={100,200,300,400};
int b[]=Array.copyOf(a,5) //从a中复制5个长度的值到b;
- copyRange方法
public static double[] copyOfRange(double [] original,int from ,int to)
复制从from到to-1长度的值,如果 to大于原数组长度则取默认值。
int a[]={100,200,300,400};
int b[]=Array.copyOfRange(a,3,5) //从a中复制第3到第5个元素的值到b;