每天一段java代码(000)-----郊游人数统计

该Java程序模拟了80名学生对ABCD四个景点的投票过程,使用ArrayList存储投票结果,然后通过HashMap统计每个景点的票数。程序最后找出得票最多的景点并输出。

某班级80名学生,现在需要组成秋游活动, 班长提供了四个景点依次是A B C D, 每个同学只能选择一个景点,请统计最终哪个景点想去的人多.

package xia;
import java.util.*;
public class travel {
    public static void main(String[] args) {
         /*
         某班级80名学生,现在需要组成秋游活动
         班长提供了四个景点依次是A B C D
         每个同学只能选择一个景点,请统计最终哪个景点想去的人多
          */
        //1.需要先让同学们投票
        //定义一个数组,储存4个景点
        String[] arr = {"A","B","C","D"};
        //利用随机数模拟80个同学的投票,并把投票结果储存起来
        ArrayList<String> list = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 80; i++) {
            int index = r.nextInt(arr.length);
            list.add(arr[index]);
        }
        //2.如果要统计的东西比较多,不方便使用计数器思想
        //我们可以定义map集合,利用集合进行统计
        HashMap<String,Integer> hm = new HashMap<>();
        for (String name : list) {
            //判断当前景点在map集合中是否存在
            if(hm.containsKey(name)){
                //存在
                //先获取当前景点已经被投票的次数
                int count = hm.get(name);
                count++;
                //把新的次数再次添加到集合当中
                hm.put(name,count);
            }else{
                //不存在
                hm.put(name,1);
            }
        }
        System.out.println(hm);
       //3.求最大值
        int max = 0;
        Set<Map.Entry<String,Integer>> entries = hm.entrySet();
        for(Map.Entry<String,Integer> entry: entries){
            int count = entry.getValue();
            if(count>max){
                max = count;
            }
        }
        System.out.println(max);
        //4.判断哪个景点的次数和最大值一样.如果一样打印出来
        for(Map.Entry<String,Integer> entry: entries){
            int count = entry.getValue();
            if(count == max){
                System.out.println(entry.getKey());
            }
        }
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值