
将这行代码移动到上一行,用ctrl + shift + ⬆
package com.itheima.d8_map_test;import java.util.HashMap;import java.util.Map;import java.util.Random;/*** 需求: 统计投票人数*/public class MapTest {public static void main(String[] args) {// 1.把80个学生选择的数据拿过来String[] selects = {"A","B","C","D"};// 创建拼接字符串对象StringBuilder sb = new StringBuilder();Random r = new Random();for (int i = 0; i < 80; i++) {// 将索引出来的元素添加到sb对象中(拼接)sb.append(selects[r.nextInt(selects.length)]); // r.nextInt可以随机索引0-3 ,获取字符串数组元素}System.out.println(sb); //CDCABDCCABCCDCBBABAADDDDBDCDBCCCCBACCBAACBCDDCCDCBACBDDABCCCDDADBADDDDCCDAAADDBD// 2. 定义一个Map集合记录最终统计的结果: A=30 B=20 C=20 D=10 键是景点,值是选择的数量// Character 是包装类的字符Map<Character,Integer> infos = new HashMap<>(); // {A = 1}// 3. 遍历80个学生选择的数据for (int i = 0; i < sb.length(); i++) { // 将字符串遍历// 4.提取当前选择景点字符char ch = sb.charAt(i); // 根据索引获取字符// 5. 判断Map集合是否存在这个键if (infos.containsKey(ch)){// 让其值 + 1// 因为如果存在该键,在添加这个键会覆盖之前的键,下面的+1,相当于刷新该键的值infos.put(ch,infos.get(ch) + 1);}else {// 说明此景点是第一次被选,就添加元素,让其值为1infos.put(ch,1);}}// 4. 输出infos集合 (Map集合可以直接输出内容)System.out.println(infos); //{A=15, B=15, C=25, D=25}}}
