美文网首页
利用Map完成一个小题目

利用Map完成一个小题目

作者: 鉴闻俗说 | 来源:发表于2017-11-01 11:19 被阅读0次

    题目描述:随机产生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的比较器

    相关文章

      网友评论

          本文标题:利用Map完成一个小题目

          本文链接:https://www.haomeiwen.com/subject/hovwpxtx.html