案例:
某个班级80名学生,现在需要组成秋游活动,班长提供了四个景点依次为(A,B,C,D),每个学生能选择一个景点,请统计出最终哪个景点想去的人数最多。
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);
}
}