-
public static void main(String[] args) { /*Map集合案例-统计投票人数 需求: 某个班级80名学生,现在需要组成秋游活动,班长提供了四个景点依次是(A、B、C、D),每个学生只 能选择一个景点,请统计出最终哪个景点想去的人数最多。 */ //1.先要游客进行投票 投票的景点用一个数组记录 String[] arrScenic = {"地质博物馆", "湖南省植物园", "桂林山水", "橡胶博物馆"}; //2.创建集合添加景点名 ArrayList<String> list = new ArrayList<>(); //3.投票使用随机数 Random r = new Random(); for (int i = 0; i < 80; i++) { int index = r.nextInt(arrScenic.length); //并将这些景点数据记录在一个集合中 list.add(arrScenic[index]); } //3.用Map集合进行记录 <景点,次数> HashMap<String, Integer> hm = new HashMap<>(); for (String result : list) { //判断当前值是否存在 if (hm.containsKey(result)){ //存在 获取景点已经投过票的次数 int count = hm.get(result); //次数自增即可 表示又被投过一次 count++; //将新的数据存入Map集合 hm.put(result,count); }else{ //不存在 hm.put(result,1); } } System.out.println(hm); //4.找出次数的最大时 //因为不能找景点当作最大值,因为会出现次数为零的情况 int max=0; //获取键值对对象 Set<Map.Entry<String, Integer>> entries = hm.entrySet(); for (Map.Entry<String, Integer> entry : entries) { //获取每个景点的次数 int value = entry.getValue(); //判断最大值 if (value>max){ max=value; } } System.out.println(max); //5.将最大值的景点名打印出来 for (Map.Entry<String, Integer> entry : entries) { int value = entry.getValue(); //最大值 if (max==value){ //找到最大值的键并打印出来 String key = entry.getKey(); System.out.println(key); } } }
HashMap集合案例-统计投票人数
最新推荐文章于 2024-09-14 18:46:05 发布