思路:考虑到最大值有可能在第一位,不能把最大值和次大值都赋值为数组的第一个数

代码:

public class Test {

public static void main(String[] args) {
int[] a = {9, 3, 9, 4, 3, 3};
int[] b = {9, 8, 7, 6, 5};
int[] c = {9, 9, 11, 8, 12};
//9 9
cal(a);
//9 8
cal(b);
//12 11
cal(c);
}

public static void cal(int[] array) {
int max1, max2;
if (array[0] > array[1]) {
max1 = array[0];
max2 = array[1];
} else {
max1 = array[1];
max2 = array[0];
}
for (int i = 2; i < array.length; i++) {
if (array[i] > max1) {
max2 = max1;
max1 = array[i];
} else if (array[i] > max2){
max2 = array[i];
}
}
System.out.println(max1 + " " + max2);
}
}