利用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的比較器

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容