首页 > 其他 > 详细

编写一个程序,读取个数不定的整数,然后查找其中出现频率最高的数字。当输入为0时,表示结束输入。

时间:2020-05-29 19:48:56      阅读:173      评论:0      收藏:0      [点我收藏+]
编写一个程序,读取个数不定的整数,然后查找其中出现频率最高的数字。当输入为0时,表示结束输入。
例如,如果输入的数据是2 3 40 3 5 4 -3 3 3 2 0,那么数字3的出现频率是最高的。如果出现频率最高的数字不是一个而是多个,则将它们全部输出。
import java.util.*;
public class Exercise2
{
    public static void main(String[] args) 
    {
        Scanner reader=new Scanner(System.in);
        HashMap<Integer,Integer> tm=new HashMap<Integer,Integer>();
        while (true)
        {
            int a=reader.nextInt();
            if (a==0)
            {
                break;
            }
            if (tm.containsKey(a))
            {
                int value1=tm.get(a);
                value1++;
                tm.put(a,value1);
            }
            else
            {
                tm.put(a,1);
            }
        }

        Collection<Integer> c = tm.values();
        Object[] obj = c.toArray();
        Arrays.sort(obj);
        
        Set keySet=tm.keySet();
        Iterator it2=keySet.iterator();
        while (it2.hasNext())
        {
            Object key=it2.next();
            Object value=tm.get(key);
            if (obj[tm.size()-1]==value)
            {
                System.out.println(key);
            }
            //System.out.println(key+":"+value);
        }
        
    }
}

 

编写一个程序,读取个数不定的整数,然后查找其中出现频率最高的数字。当输入为0时,表示结束输入。

原文:https://www.cnblogs.com/lzy20001230/p/12989205.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!