博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
J2EE面试题之 java如何找出一个int数组中出现次数最多的数字以及出现次数?
阅读量:4167 次
发布时间:2019-05-26

本文共 888 字,大约阅读时间需要 2 分钟。

代码如下:

package test;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Test {
public static void main(String[] args) {
int[] n = {1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,9,8,7};
// 设置中间数用来比较
int m = 0;
// 排序,升序
Arrays.sort(n);
// 保存结果map,n的元素为key,出现次数为value
Map nums = new HashMap();
// 首先中间数出现次数为0
nums.put(m, 0);
// 循环,当某个数已经在map里时,将次数加一
for (int i = 0; i < n.length; i++) {
if (m == n[i]) {
int v = (Integer) nums.get(m);
v++;
nums.put(m, v);
} else {
nums.put(n[i], 1);
}
m = n[i];
}
// 遍历得到最多次数的数
Iterator iterator = nums.keySet().iterator();
int maxNumber = 0;
int maxValue = 0;
while (iterator.hasNext()) {
int key = (Integer) iterator.next();
int value = (Integer) nums.get(key);
if (value > maxNumber) {
maxNumber = value;
maxValue = key;
}
}
System.out.println("出现次数最多的数为:" + maxValue + ",出现次数为:" + maxNumber);
}
}

转载地址:http://wbmxi.baihongyu.com/

你可能感兴趣的文章
嵌入式100题(75):计算机中,32bit与64bit有什么区别
查看>>
嵌入式100题(60):系统调用的作用
查看>>
C语言基本概念归纳
查看>>
初识单片机
查看>>
在单片机上点亮LED
查看>>
初学定时器
查看>>
数码管
查看>>
单片机数码管消隐及中断
查看>>
C#串口调试助手代码
查看>>
学习DS1820随记
查看>>
初学C#之windowes窗口应用文件
查看>>
linux常用命令
查看>>
Linux之vim(一)vim简介
查看>>
进程间通信的方式简单解析————管道
查看>>
git学习笔录
查看>>
Activity类中7个与活动生命周期回调有关的方法
查看>>
jwt与token+redis,哪种方案更好用?
查看>>
Comparator接口
查看>>
在二叉树中找到一个节点的后继节点
查看>>
寻找第K大
查看>>