代码如下:
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
ArrayList<String> list= new ArrayList<>();
Map<String, Integer> m = new HashMap<>();
for (int i = 1; i <= n; i++) // 存放单词
{
String s = sc.next();
list.add(s);
}
for(String s : list) // 遍历list集合
{
if(m.containsKey(s)) // 看看Map中的键包含s这个字符串吗?
{
int count = m.get(s); // 包含证明重复,取出次数家1然后再丢进去覆盖之前的次数
count++;
m.put(s,count);
}
else // 不包含就是第一次,把字符串丢进去并且次数为1
{
m.put(s, 1);
}
}
System.out.println(m);
int max = -1;
Set<String> s = m.keySet(); // Map的键转为集合再进行遍历
for (String str : s)
{
if(m.get(str) > max) // 通过Set里面的键得到值
{
max = m.get(str); // 值赋值给max
}
}
System.out.println(max); // 得到最大值
for(String str : s) // 增强for遍历
{
// 通过Set集合里面的字符串变为键,然后得到值与max相等我们就打印Set集合中字符串
if(m.get(str) == max)
System.out.println(str);
}
}
}