package cc; //找出数组{ 3, 4, 1, 5, 3, 1, 4, 5, 4, 3 }中出现次数最多的数字 //1 建立一个新数组,长度与原数组一致,然后将每个数字出现的次数存入此数组 //2 找出此数组中的最大值,尤其关注的是此最大值的下标 public class ArrayCount { public static void main(String[] args) { int test[] = new int[] { 1, 2, 3, 2, 3, 3 }; Arr arr = new Arr(); System.out.println("出现次数最多的数字是:" + arr.getMax(test)); } } class Arr { public int getMax(int a[]) { int count[] = new int[a.length];// 建立一个新数组,长度与原数组一致 for (int x = 0; x < a.length; x++) {// 将每个数字出现的次数存入一个数组 int tempCount = 0; for (int y = 0; y < a.length; y++) { if (a[y] == a[x]) { tempCount++; } } count[x] = tempCount; } int tempMax = count[0];// 找出最大值即谁出现次数最多 int maxLocal = 0; for (int x = 0; x < count.length - 1; x++) { if (tempMax < count[x + 1]) { tempMax = count[x + 1]; maxLocal = x + 1; } else { tempMax = count[x];// 这个else可有可无 } } return a[maxLocal]; } }