需求:
某个班级80名学生,现在需要组成秋游活动,班长提供了四个景点依然是(A,B,C,D)
每个学生只能选择一个景点,请统计出最终那个景点想去的人最多
分析
将80个学生的额数据拿到程序中去
我们采用的是用循环随机生成80个投票数据
定义Map集合用于储存最终统计的结果
遍历80个学生选择的数据,看Map集合中是否存在,不存在存入“数据=1”;存在则对应的值+1
代码部分:
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class Test {
public static void main(String[] args) {
//模拟80个学生投票
String[] arr= {"A","B","C","D"}; //可以投票的4个地方
StringBuilder s=new StringBuilder();//用于装学生投票的字符串信息
Random random=new Random();//用来随机投票信息
for(int i=0;i<80;i++) {
s.append(arr[random.nextInt(4)]);
}
//定义Map集合开始统计
Map<Character, Integer> m=new HashMap<>();
for(int i=0;i<s.length();i++) {//遍历的长度为整个StringBuilder容器的长度
if(m.containsKey(s.charAt(i))==true) {
//说明键存在,直接给值加1 即可
m.put(s.charAt(i), m.get(s.charAt(i))+1);
}
else if (m.containsKey(s.charAt(i))==false) {
//说明键不存在添加键和值即可
m.put(s.charAt(i), 1);
}
}
System.out.println(s); //学生头的票没统计前ABDACBDCCDACAAADAAADADCBCCBACCCCDBBAADCADBCACDACCCBCBDDCCDCABABCDADCDCDBDADDABBD
System.out.println(m);
//统计后{A=21, B=14, C=24, D=21},刚好80票程序没有毛病
}
}