Java の基礎 - マップ収集の場合 - 投票者数のカウント

場合:

        クラスには 80 人の生徒がいます。今、彼らは秋の遠足を計画する必要があります。クラスのリーダーは 4 つの景勝地 (A、B、C、D) を提供します。各生徒は 1 つの景勝地を選択できます。どの景勝地にあるか数えてください。ほとんどの人が行きたいと思っています。

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

/**
 * 统计投票人数
 * 某个班级80名学生,现在需要组成秋游活动,班长提供了四个景点依次为(A,B,C,D),
 * 每个学生能选择一个景点,请统计出最终哪个景点想去的人数最多。
 */
public class Demo {
    public static void main(String[] args) {
        //1.把80名学生选择的数据拿到-->随机从四个景点中选80次作为学生选择数据
        String[] selects = {"A","B","C","D"};
        StringBuilder sb = new StringBuilder();
        Random r = new Random();
        for (int i = 0; i < 80; i++) {
            sb.append(selects[r.nextInt(selects.length)]);
        }

        //2.定义一个Map集合记录最终统计的结果比较 例如:A=20...
        Map<Character,Integer> infos = new HashMap<>();

        //3.遍历80位学生选择的数据,并统计存储到Map集合中
        for (int i = 0; i < sb.length(); i++) {
            //3.1从存储学生选择景点的对象中提取当前学生选择的景点字符ABCD
            char ch = sb.charAt(i);
            //3.2将学生数据统计到Map集合,景点字符为键,统计学生人数为值
            //判断提取的景点字符是否存在于Map集合中,存在对应键的值加1,不存在添加键且对应值为1
            if (infos.containsKey(ch)){
                //3.2.1Map集合存在该景点,对应键的值加1
                infos.put(ch,infos.get(ch) + 1);
            }else {
                //3.2.2Map集合不存在该景点,则添加该键值对
                infos.put(ch,1);
            }
        }

        //4.输出结果
        System.out.println(infos);
    }
}

おすすめ

転載: blog.csdn.net/weixin_61275790/article/details/130060489