需求:
某班级有80名学生,现在需要组成秋游活动,班长提供了四个景点依次是(A、B、C、D),每个学生只能选择一个景点,请统计出最终哪个景点想去的人数最多。
分析:
- 将80个学生选择的数据拿到程序中去。
- 定义Map集合用于存储最终统计结果。
- 遍历80个学生选择的数据,看Map集合中是否存在,不存在存入“数据=1”,存在则其对应值+1。
package com.itheima.game;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class Test01 {
public static void main(String[] args) {
//把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)]);
}
System.out.println(sb);
//定义一个Map集合记录最终统计的结果, 键是景点,值是选的的数量
Map<Character,Integer> infos=new HashMap<>();//{A=1}
//变量80个学生选择的数据
for (int i = 0; i <sb.length(); i++) {
//提取当前选择景点的字符
char ch=sb.charAt(i);
//判断Map集合中是否存在这个键
if(infos.containsKey(ch)){
//让其值加一
infos.put(ch,infos.get(ch)+1);
}else {
//说明此景点是第一次被选
infos.put(ch,1);
}
}
//4、输出集合
System.out.println(infos);
}
}