利用Map完成一个小题目

题目描述:随机产生50个整数,位于[10,50], 统计每个数字出现的次数以及出现次数最多的数字与出现次数并打印.如果出现次数为0不打印,打印时要求升序

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;

public class MapTest5
{
    public static void main(String[] args)
    {
        //利用TreeMap的有序性,存储数字及其出现次数,key为数字,value为次数
        TreeMap<Integer, Integer> map = new TreeMap<>();
        //用来存放出现最大次数的数字
        ArrayList<Integer> list = new ArrayList<>();
        
        Random random = new Random();
        
        for(int i = 0; i < 40; i++)
        {
            int num =random.nextInt(41) + 10;
            
            if (map.get(num) == null)
            {
                map.put(num, 1);
            }
            else 
            {
                int count = map.get(num);
                map.put(num, count + 1);
            }   
        }
        
        //利用map.value()方法得到值得集合
        Collection<Integer> values = map.values();
        //然后利用Collections.max()得到值中的最大值,即出现的最大次数
        Integer maxValue =Collections.max(values);
        
        //遍历map
        Set<Map.Entry<Integer, Integer>> set = map.entrySet();
        for(Iterator<Map.Entry<Integer, Integer>> iterator = set.iterator(); iterator.hasNext();)
        {
            Map.Entry<Integer, Integer> entry = iterator.next();
            Integer key = entry.getKey();
            Integer value = entry.getValue();
            //保存出现最大次数的数字
            if(value.equals(maxValue))
                list.add(key);
            System.out.println(key + "的出现次数为:" + value);
        }
        
        
        System.out.println("出现最多的次数为:" +  maxValue);
        System.out.print("这些数字分别是:");
        for(Iterator<Integer> iterator = list.iterator(); iterator.hasNext();)
        {
            System.out.print(iterator.next() + " ");
        }
    }
}

上一篇:Map
下一篇:自定义TreeMap的比较器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,026评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,791评论 25 709
  • 朝花夕拾 今朝早已敌不过旧有 黄昏之后 人去 楼中只留下空洞 浩瀚苍穹 在满天星斗下邂逅 茫茫江河 不知 一切是否...
    吃不到草的长颈鹿阅读 1,092评论 2 2
  • 凯文·凯利被称为“互联网预言帝”,2010年的《失控》还没有拜读,先从《必然》开始。这是最近读的书里比较晦涩的一本...
    职场王老师阅读 3,836评论 0 0
  • 一周一书《Reality is broken》:我们再也不能抱残守缺,固执地认为游戏独立于我们的现实生活和工作。它...
    彭小六阅读 12,201评论 26 40