package com.jxb.test;public class FindSecMax { public int findSecMax(int[] data) { int maxNum = 0; int secMaxNum = 0; // 先将前两个元素按大小分别赋给第一大和第二大的数 if (data.length < 2) return -1; if (data[0] >= data[1]) { maxNum = data[0]; secMaxNum = data[1]; } else { maxNum = data[1]; secMaxNum = data[0]; } // 从第三个开始循环,如果元素大于最大值,则最大值更新,原最大值赋给第二大值 // 如果该元素不大于最大值,且大约第二大的值,则第二大的值更新 for (int i = 2; i < data.length; i++) { if (data[i] > maxNum) { secMaxNum = maxNum; maxNum = data[i]; } else { if (data[i] >= secMaxNum) { secMaxNum = data[i]; } } } return secMaxNum; } /** * @param args */ public static void main(String[] args) { FindSecMax fsm = new FindSecMax(); int[] a = new int[] { 10, 9,9, -70000, -90000, -600000, -500000, -32769 }; System.out.println(fsm.findSecMax(a)); }}