题目:
代码实现:
package com.itheima.collectionAdanced;
import java.util.*;
public class HashMapTest {
public static void main(String[] args) {
// 1.存储四个景点,存储在数组中
String[] arr = {"A", "B", "C", "D"};
ArrayList<String> list = new ArrayList<>();
// 随机生成80个同学选择的景点添加到集合中
Random r = new Random();
for (int i = 0; i < 80; i++) {
int index = r.nextInt(arr.length);
list.add(arr[index]);
}
// 统计,数量太多,不方便使用计数器,使用map集合进行统计
// 统计每个景点的人数
HashMap<String, Integer> hm = new HashMap<>();
for (String name : list) {
// 存在,value值加1
if (hm.containsKey(name)) {
int count = hm.get(name);
count++;
hm.put(name, count);
} else {
// 不存在,key值存入,value值设为1
hm.put(name, 1);
}
}
System.out.println(hm);
// 求最大值
int max = 0;
Set<Map.Entry<String, Integer>> entries = hm.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
int count = entry.getValue();
if (count > max) {
max = count;
}
}
System.out.println(max);
// 打印最大值对应的key值,即选择人数最多的景点
for (Map.Entry<String, Integer> entry : entries) {
int count = entry.getValue();
if (count == max) {
System.out.println(entry.getKey());
}
}
}
}
运行结果: