使用简单数组
* 1,创建一个名为ArrayTest的类,在main()方法中声明array1和array2两个变量,他们是int[]类型的数组。
* 2,使用大括号 { } ,把array1初始化为8个素数:2,3,5,7,11,13,17,19。
* 3,显示array1的内容。
* 4,赋值array2变量等于array1,修改array2中的偶索引,使其等于索引值(如array[0]=0,array[2]=2)。打印出array1.
*
* 思考:array1和array2是什么关系?array1和array2地址值相同,都指向了堆空间的唯一的一个数组实体。
* 扩展:修改题目,实现array2对array1数组的复制
错误的复制:
public class ArrayExer2 {
public static void main(String[] args) {
int[] array1,array2;
array1 = new int[] {2,3,5,7,11,13,17,19};
//显示array1的内容
for(int i = 0;i < array1.length;i++) {
System.out.println(array1[i] + "\t");
}
//赋值array2变量等于array1
//不能称作地址的赋值,相当于创建一个快捷方式
array2 = array1;
//修改array2中的偶索引元素,使其等于索引值(如array[0]=0,array[2]=2)
for(int i = 0;i < array2.length;i++) {
if(i % 2 == 0) {
array2[i] = i;
}
}
System.out.println();
//打印出array1
}
}
数组的复制如果直接,只是复制array1的地址值,实际上array1和array2公用一个地址值,
类似于电脑上的软件,可以有多个快捷方式,只是名字不一样,而打开的软件却是同一个。
如果要复制数组,那么需要遍历数组array1,遍历出来的数组对array2进行赋值
正确的复制:
public class ArrayExer3 {
public static void main(String[] args) {
int[] array1,array2;
array1 = new int[] {2,3,5,7,11,13,17,19};
//显示array1的内容
for(int i = 0;i < array1.length;i++) {
System.out.println(array1[i] + "\t");
}
//数组的复制:
array2 = new int[array1.length];
for(int i = 0;i < array2.length;i++) {
array2[i] = array1[i];
}
//修改array2中的偶索引元素,使其等于索引值(如array[0]=0,array[2]=2)
for(int i = 0;i < array2.length;i++) {
if(i % 2 == 0) {
array2[i] = i;
}
}
System.out.println();
//打印出array1
}
}