题目
- 使用简单数组
- (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
错误代码
public class ArrayTest3 {
public static void main(String[] args) {
// 声明array1和array2两个变量
int[] array1, array2;
array1 = new int[]{2, 3, 5, 7, 11, 13, 17, 19};
// 赋值array2变量等于array1,这里不叫作数组的复制
array2 = array1;
// [2, 3, 5, 7, 11, 13, 17, 19]
System.out.println(Arrays.toString(array1));
for (int i = 0; i < array1.length; i++) {
if (i % 2 == 0) {
array2[i] = i;
}
}
// [0, 3, 2, 7, 4, 13, 6, 19]
System.out.println(Arrays.toString(array2));
// [0, 3, 2, 7, 4, 13, 6, 19]
// 此时array1也发生了改变,因为是把array1的地址给了array2
System.out.println(Arrays.toString(array1));
}
}
正确代码
public class CopyArray {
public static void main(String[] args) {
// 声明array1和array2两个变量
int[] array1, array2;
array1 = new int[]{2, 3, 5, 7, 11, 13, 17, 19};
// 赋值array2变量等于array1
array2 = new int[array1.length];
// [2, 3, 5, 7, 11, 13, 17, 19]
System.out.println(Arrays.toString(array1));
for (int i = 0; i < array1.length; i++) {
array2[i]=array1[i];
if (i % 2 == 0) {
array2[i] = i;
}
}
// [0, 3, 2, 7, 4, 13, 6, 19]
System.out.println(Arrays.toString(array2));
// [2, 3, 5, 7, 11, 13, 17, 19]
System.out.println(Arrays.toString(array1));
}
}