Java中数组中最常见的数字

Tho*_*phe 0 java arrays numbers

我需要有一个方法可以从 Java 中的整数数组中返回最频繁的数字。如果 2 个数字是最常见的,我希望该方法返回最高的数字。

例子:

  • [4,1,4,1,3]-> 4(不是1
  • [5,2,6,5,5] -> 5

谢谢。

Woj*_*ior 5

解决方案之一是创建以 Integer 为键、以 Integer 为值的 Map。您将不得不遍历数组并增加地图中的数字数量。

Integer[] arr = {4, 1, 4, 1, 3};
Map<Integer,Integer> integersCount = new HashMap<Integer,Integer>();

for (Integer i : arr){
    if (!integersCount.containsKey(i))
        integersCount.put(i, 1);
    else
        integersCount.put(i, integersCount.get(i) + 1);
    }
Run Code Online (Sandbox Code Playgroud)

之后,您可以浏览地图并记住具有最大价值的元素的位置。

对于另一个解决方案,我建议计算另一个数组中的数字 - 阅读“计数排序”。