输出一个数组中出现频率最多的元素以及次数

思路;(1)将数组以键值对的形式存储到map中(key为数组元素值,value为元素出现频率)(2)然后遍历map,找出频率的最大值max。(3)然后再遍历map,把value值等于max的键值对存储到新的map中,返回这个map。(此时这个map里存储的是出现频率最多的元素以及最大频率,以键值对的形式存储在map中,正因为这样的元素不止一个,所以才想到存储在map中)(4)主函数接收这个...
摘要由CSDN通过智能技术生成

思路;
(1)将数组以键值对的形式存储到map中(key为数组元素值,value为元素出现频率)
(2)然后遍历map,找出频率的最大值max。
(3)然后再遍历map,把value值等于max的键值对存储到新的map中,返回这个map。(此时这个map里存储的是出现频率最多的元素以及最大频率,以键值对的形式存储在map中,正因为这样的元素不止一个,所以才想到存储在map中)
(4)主函数接收这个map返回值,然后对这个map进行遍历,输出每一个键值对的key值以及value值
需要提起知道的几个Map中的方法
(1)put(key,value)
像map中添加键值对。
第一个参数是key值,第二个参数是value值,这里对应,第一个参数是元素值,第二个参数是频率值
(2)get(key)
获取key值对应的value值
(3)containsKey(key)
查询map中知否存在此key值,这里用这个函数判断当前数组元素是否已经添加到map中
遍历map的两种方法:
1、

Set<Integer> keyset=m.keySet();  //把map的key值单独取出来构建成一个Set
Iterator<Integer> it = keyset.iterator(); //然后遍历这个Set,这个Set里的每一个元素(it.next())都代表map中的一个key值

这中方法对于即想得到key值又想得到value值来说不是很方便,于是推荐下面一种遍历方法
2、

Set<Map.Entry<Integer, Integer>> set=m.entrySet();
Iterator<Map.Entry<Integer, Integer>> itt=set.iterator();

map.entrySet()的意思是把每一个键值对作为整体,这个整体的类型就是
Map.Entry<key的类型,value的类型>。也就是说Set中存储的是每一个键值对,
类型为Map.Entry<key的类型,value的类型>。
于是接着可以对这个Set利用迭代器进行遍历,每一个it.next()都是Map.Entry<>类型
然后再把每一个Set元素调用getKey()可以获取Set中存储的Map键值对的key值,getValue()方法
可以获取value值。

while(it.hasNext())
{
   
  Map.Entrt<Integer,Integer> m=itt.next();
  key=m.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值