1.班上80位同学,现在准备秋游,班长提供了四个景点(A,B, C, D),每个学生只能选择去一个景点,请统计去哪个景点的人数最多,并且去了多少人?
package mymap;
import java.util.*;
import java.util.Map;
public class Demo4 {
public static void main(String[] agrs) {
//存储四个景点
String arr[] = new String[]{"A", "B", "C", "D"};
ArrayList<String> list = new ArrayList<>();
Random r = new Random();
for (int i = 0; i < 80; i++) {
var index = r.nextInt(arr.length);
System.out.println(arr[index]);
list.add(arr[index]);
}
//统计数目较多时,我们利用map集合进行统计
HashMap<String, Integer> hm = new HashMap<>();
for (String name : list) {
if (hm.containsKey(name)) {
//获取景点投票的次数
int count = hm.get(name);
count++;
hm.put(name, count);
} else {
hm.put(name, 1);
}
}
System.out.println(hm);
//求最大值
int max=0;
var entries = hm.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
int count = entry.getValue();
if(count>max){
max=count;
}
}
System.out.println(max);
//判断景点与最大值是否相等
for (Map.Entry<String, Integer> entry : entries) {
var count = entry.getValue();
if(count==max){
System.out.println(entry.getKey());
}
}
}
}