我在牛客网上刷题时遇到了这道题目,因为初学Java不久,对Java的应用还不熟悉,刚开始用C语言做没做出来(我太菜了。。。),接着百度发现竟然可以用HashMap做,仔细一想发现这真是一个好办法(为什么我就想不到!!!),下面是我参考大佬们的代码自己写出来的,附加了个人理解。

import java.util.*;
/*** 从键盘输入一个数组* 找出数组中出现次数最多的元素* @author Administrator**/
public class max_number_Array{public static void main(String[] args) {Scanner in = new Scanner(System.in);int num = in.nextInt();int[] data = new int[num];for(int i=0; i<num; i++) {data[i] = in.nextInt();}Map<Integer,Integer> numMap = new HashMap<Integer,Integer>();//在Map中存入数组元素;包括某个元素出现的次数for(int i=0; i<num; i++) {if(numMap.containsKey(data[i])) {//如果Map中已经有该元素,则其value值加1int temp = numMap.get(data[i]);numMap.put(data[i],temp+1);}else {                            //如果Map中没有该元素,则添入该元素(这其实就是初始化)numMap.put(data[i], 1);}}//找出出现次数最多的元素。Collection<Integer> KeyArray = numMap.values();//存储所有元素出现的次数;int maxCount = Collections.max(KeyArray);//找出最大的次数,下一步:元素和次数进行匹配;for(Map.Entry<Integer, Integer> map:numMap.entrySet()) {//通过Entry利用增强for循环遍历上述Map的键值对对象if(maxCount == map.getValue()) {//获取value值一一匹配System.out.print("此数组中出现次数最多的元素是:");System.out.println(map.getKey());//如果匹配成功,输出该value值对应的Key值}}System.out.println("该元素出现的次数是:"+maxCount);  }
}

利用HashMap找出数组中出现次数最多的元素及其次数相关推荐

  1. 封装一个方法,找出数组中重复数大于n的元素集合

    例如 [1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4],封装一个数组原型上的方法,方法返回 重复数目大于2 的子元素集合,结果为[1, 2, 3] 初看并不难,循环一下就可以搞 ...

  2. java数组出现次数最多的数_找出数组中出现次数最多的那个数——主元素问题...

    方法一:以空间换时间,可以定义一个计数数组int count[101],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~100),count数组中最大的元素对应的下标,即为出现次数最多 ...

  3. 找出数组中出现次数超过一半的数

    算法--找出数组中出现次数超过一半的数      每当我看到经典的算法题,就怀念高中,感觉很多算法题就是高中的题目,谁叫哥只读了个专科,高数基本相当没学.      有空要看看高数啊,想当年数学那是相 ...

  4. c语言找出一个数组中出现次数最多的那个元素,c语言找出数组中出现次数最多地那个元素...

    matlab中如何找出不同维度矩阵出现次数最多的数组并记录其个数 首先是胞矩阵中的序列问题,不妨假设AA{1}是一个多行两列的数据,AA{2}同例.程序如下clcclearallAA{1}=[12;2 ...

  5. 找出数组中重复的数字---多思路

    问题:找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意 ...

  6. 找出重复的数java_剑指offer:1.找出数组中重复的数(java版)

    数组中重复的数: 题目:找出数组中重复的数, 题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的. 也不知道每个数字重复几次.请找 ...

  7. 9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...

    /**  * 功能:给定一个排序后的数组.包括n个整数.但这个数组已被旋转过多次,次数不详.找出数组中的某个元素.  * 能够假定数组元素原先是按从小到大的顺序排列的.  */ /*** 思路:数组被 ...

  8. 微策略2011校园招聘笔试题(找出数组中两个只出现一次的数字)

    1.8*8的棋盘上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下 ...

  9. 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...

    2019独角兽企业重金招聘Python工程师标准>>> /** * 功能:给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,次数不详.找出数组中的某个元素. * 可以假定 ...

最新文章

  1. 工信部:筹建全国首个区块链和分布式记账标准化技术委员会
  2. php 删除子字符串函数,PHP删除字符串中的任何字符函数
  3. 张亚勤:从信息化生存到互联网化生存 百度重构互联网安全防护体系
  4. mysql事务实战_MySQL实战45讲学习-事务相关笔记
  5. 高能玩家!硬核自制小程序云“肝”动森
  6. python string类型_Python的基本数据类型——String
  7. PHP内核——内存管理
  8. [转]宝文!Apple Push Notification Service (APNS)原理与实现方案
  9. java线程初始方法三种_Java 多线程 三种实现方式
  10. 时间:2014年3月27日20:08:01网站建表实战与优化意识
  11. ubuntu server设置时区和更新时间
  12. CCNA试验-NAT
  13. jqwidgets API
  14. 特征工程实践:泰坦尼克号幸存者预测
  15. 特斯拉降价也无法阻挡国内新能源汽车厂商前进的步伐
  16. 什么是SEM?SEM是否包括SEO?
  17. week06_task_二分, 排序
  18. 科技热点周刊|马斯克套现 440 亿;苹果推出数字身份证;Meta 与微软合作;华为捐赠欧拉
  19. Linux下C/C++实现(网络流量分析-NTA)
  20. 以前的java单机游戏过关长剑,玩过这些经典单机游戏_就说明你已经老了

热门文章

  1. WinCC项目函数之间相互调用
  2. openstackAZ配置
  3. 装机员 Ghost Win7 Sp1 64位装机9月版
  4. VTK进行IGES文件的读取及显示
  5. 面试官:CPU 是如何工作的?我一脸懵逼。。
  6. 1108: 爱管闲事的晶晶
  7. 办公小秘诀——Word及Excel(一)
  8. 基于RoomPlan,苹果房间扫描AR效果震惊
  9. s3c6410 framebuffer分析
  10. java快速排序 (任何人都能看懂的快速排序)