这一章主要学习数组中常见的算法
并且解决一下题目(杨辉三角已解决):
解:
/*
* 定义一个int型的一维数组,包含10个元素,分别赋值
* 然后求出所有元素的最大值,最小值,和值,平均值,并且输出出来。
* 要求:所有随机数都是两位数。[10,99]
* 公式:(99-10+1)+10
*/
public class Test1 {
public static void main(String[] args) {
//定义一个int型的一维数组
int[] arr = new int[10];
//赋值
for(int i=0; i<arr.length; i++) {
arr[i] = (int)(Math.random() * 90) + 10;
}
//最大值、最小值、和值、平均值
int max = arr[0];
int min = arr[0];
int sum = arr[0];
for(int j=1; j<arr.length; j++) {
sum += arr[j];
if(max < arr[j]) {
max = arr[j];
}
if(min > arr[j]) {
min = arr[j];
}
}
double avg = sum/arr.length;
System.out.println("这次的最大值是:" + max);
System.out.println("这次的最小值是:" + min);
System.out.println("这次的平均值是:" + avg);
System.out.println("这次的和值是:" + sum);
}
}
解:
/*
* 思考: 两者应该是赋值关系,
* 第四步中的操作只是把array1的地址值赋给array2,就相当于给array1做一个快捷键,
* 所以修改array2也会让array1改变。
*/
public class ArrayTest {
public static void main(String[] args) {
//在main()方法中声明array1和array2两个变量,他们是int[]类型的数组。
int[] array1, array2;
//使用大括号{},把array1初始化为8个素数:2,3,5,7,11,13,17,19
array1 = new int[]{2,3,5,7,11,13,17,19};
//显示array1的内容
for(int i=0; i<array1.length; i++) {
System.out.print(array1[i] + " ");
}
System.out.println();
//赋值array2变量等于array1
array2 = array1;
//修改array2中的偶索引元素
for(int i=0; i<array2.length; i++) {
if(i%2 == 0) {
//使其等于索引值(如array[0]=0,array[2]=2)
array2[i] = i;
}
}
//打印出array1
for(int i=0; i<array1.length; i++) {
System.out.print(array1[i] + " ");
}
}
}
扩展(实现array2对array1的复制)解:
数组的复制,array2首先要在堆空间中new出来一个内存,然后使用for循环,让array1的元素赋值给array2。
/*
* 思考: 两者应该是赋值关系,
* 第四步中的操作只是把array1的地址值赋给array2,
* 所以修改array2也会让array1改变。
*/
public class ArrayTest {
public static void main(String[] args) {
//在main()方法中声明array1和array2两个变量,他们是int[]类型的数组。
int[] array1, array2;
//使用大括号{},把array1初始化为8个素数:2,3,5,7,11,13,17,19
array1 = new int[]{2,3,5,7,11,13,17,19};
//显示array1的内容
System.out.print("array1的元素有:");
for(int i=0; i<array1.length; i++) {
System.out.print(array1[i] + " ");
}
System.out.println();
//array2复制array1
array2 = new int[array1.length];
for(int i=0; i<array2.length; i++) {
array2[i] = array1[i];
}
//修改array2中的偶索引元素
for(int i=0; i<array2.length; i++) {
if(i%2 == 0) {
//使其等于索引值(如array[0]=0,array[2]=2)
array2[i] = i;
}
}
//打印出array1
System.out.print("修改后array1的元素有:");
for(int i=0; i<array1.length; i++) {
System.out.print(array1[i] + " ");
}
System.out.println();
//打印出array2
System.out.print("修改后array2的元素有:");
for(int i=0; i<array2.length; i++) {
System.out.print(array2[i] + " ");
}
}
}