跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava算法

Java 实现:统计数组中出现频率最高的元素

本示例基于 Java 语言,演示如何通过 HashMap 结构统计整型数组中各元素的频次,并筛选出出现次数最多的数值。代码采用双重循环遍历计算频率,利用 Map 存储键值对关系,最终输出最高频的数字及其对应次数。该方案适用于基础数据频次分析场景,逻辑清晰,便于理解。

flc发布于 2010/5/27更新于 2026/9/1075 浏览
Java 实现:统计数组中出现频率最高的元素

找出数组中出现次数最多的数

在处理数据分析任务时,统计某个集合中哪个元素出现得最频繁是一个经典问题。今天分享一个基于 Java 的实现方案,利用 HashMap 配合遍历逻辑来完成统计。

实现思路

这个方案的核心在于利用 Map 的键值特性来记录频次。虽然直接遍历一次数组并用 merge 方法效率更高,但为了展示基础逻辑,下面的代码采用了双重循环先计算频次再存入 Map 的方式。

具体步骤如下:

  1. 初始化数组和用于存储计数的 Map。
  2. 外层循环遍历每个元素,内层循环统计它在整个数组中出现的总次数。
  3. 将统计结果放入 Map,Key 是数字,Value 是次数。
  4. 遍历 Map 找出最大的 Value 值,并记录对应的 Key。
  5. 再次遍历 Map,收集所有等于最大次数的 Key,确保不会遗漏并列的情况。

完整代码

package Test;
import java.util.HashMap;
import java.util.Iterator;

public class Test {
    public static void main(String[] args) {
        int[] a = {6, 6, 6, 1, 2, 8, 8, 5, 5, 5, 12};
        int maxCount = 0;
        int maxValue = 0;
        HashMap<Integer, Integer> map = new HashMap<>();
        HashMap<Integer, Integer> map2 = new HashMap<>();

        // 统计每个数字的出现次数
        for (int   ; i < a.length; i++) {
               ;
             (   ; j < a.length; j++) {
                 (a[i] == a[j]) {
                    count++;
                }
            }
            map.put(a[i], count);
        }

        
        Iterator<Integer> it = map.keySet().iterator();
         (it.hasNext()) {
               it.next();
             (map.get(key) > maxCount) {
                maxCount = map.get(key);
                maxValue = key;
            }
        }

        
        Iterator<Integer> it2 = map.keySet().iterator();
         (it2.hasNext()) {
               it2.next();
             (map.get(key) == maxCount) {
                map2.put(key, maxCount);
            }
        }

        
        Iterator<Integer> it3 = map2.keySet().iterator();
         (it3.hasNext()) {
               it3.next();
            System.out.print( + key + );
            System.out.println( + map2.get(key));
        }
    }
}
i
=
0
int
count
=
0
for
int
j
=
0
if
// 找出最大次数及对应的数字
while
Integer
key
=
if
// 收集所有出现次数最多的数字
while
Integer
key
=
if
// 输出结果
while
Integer
key
=
"出现次数最多的数为:"
" "
"出现次数:"

注意事项

运行这段代码时,控制台会依次打印出频次最高的数字及其次数。如果有多个数字并列第一,它们都会被列出来。另外,变量命名上我做了微调,比如 maxnum 改为 maxCount,这样语义更清晰,方便后续维护。

目录

  1. 找出数组中出现次数最多的数
  2. 实现思路
  3. 完整代码
  4. 注意事项

更多推荐文章

查看全部
  • 程序员接外包私活平台推荐:主流接单网站盘点与避坑指南
  • 网络安全红队与蓝队概念及技能解析
  • C++ 哈希表原理与 STL 实现解析
  • Web 应用全栈开发实践:从前端到后端
  • Coze 智能体开发:插件、知识库与数据库实战指南
  • C++ 继承机制详解:栈实现、名称隐藏与默认成员函数
  • Docker Compose rm 命令详解与使用指南
  • IDEA Maven 运行时报错 Picked up JAVA_TOOL_OPTIONS 编码问题解决方法
  • Python 开源 AI 模型引入与测试全流程实战
  • 链表两两交换:Java 递归与迭代实现详解
  • 前端 PWA:构建类原生体验的 Web 应用
  • FPGA 是什么:现场可编程门阵列详解
  • 无人机目标检测数据集介绍及 YOLOv8 训练实战
  • Python AI 入门:从线性回归到图像分类
  • Java ForkJoin 框架详解:分治法与并行编程
  • 二分查找算法详解:基础查找与边界定位
  • 未来几年最紧缺的八大职业分析
  • Flutter 三方库 eth_sig_util 在鸿蒙端的适配指南
  • GitHub 最受欢迎的开源开发工具 Top5
  • AR/VR 教育应用开发实战指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online