java - Java 数组中出现次数最多的数字

标签 java arrays numbers

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

示例:

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

谢谢。

最佳答案

解决方案之一是创建以 Integer 作为键、以 Integer 作为值的 Map。您必须遍历数组并增加 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);
    }

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

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

关于java - Java 数组中出现次数最多的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798307/

相关文章:

java - 将 JSON 数组添加到 JSONObject,而不用 JAVA 中 JSON 数组值的引号

java - 为什么 AIDL/Messenger 绑定(bind)到服务?

javascript - 如何使用一系列异步请求的结果填充数组

javascript - 简单的无名 json 数组转换为映射的 JS 或 PHP 数组

java - Java 中的 XML 文件解析显示错误详细信息

java - 为什么 `for(;;i++)` 和 Java 中的 `for(;;++i)` 一样工作?

java - 在 Spring Data MongoDB 中返回流时指定游标选项?

javascript - 合并两个 map 对象并返回自定义对象javascript

css - 数字出现在 RTL 中的内容 CSS 之前

JavaFX 在 JavaFX StringBinding 中将逗号 (,) 替换为点 (.)