java - 如何在Java中使用Map(或Set?)找到最常见的元素?

标签 java dictionary arraylist

我在 ArrayList 中有名称,我想以最简单的方式找到最常见的元素。我尝试使用 Collectoins.max() ,但它的返回值不正确。

我创建了一个 HashMap,使用名称 az 键和名称数量作为值,但我不知道如何编写具有最高值的名称。

(实际上,如果有两个或多个具有最高值的名称,我必须将它们全部获取。)

最佳答案

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

公共(public)类 StringChecker {

public static void main(String[] args) {
    ArrayList<String> string;
    string = new ArrayList<>(Arrays.asList("Mah", "Bob", "mah", "bat", "MAh", "BOb"));
    Map<String, Integer> wordMap = new HashMap<String, Integer>();

    for (String st : string) {
        String input = st.toUpperCase();
        if (wordMap.get(input) != null) {
            Integer count = wordMap.get(input) + 1;
            wordMap.put(input, count);
        } else {
            wordMap.put(input, 1);
        }
    }
    System.out.println(wordMap);
    Object maxEntry = Collections.max(wordMap.entrySet(), Map.Entry.comparingByValue()).getKey();
    System.out.println("maxEntry = " + maxEntry);
}

}

关于java - 如何在Java中使用Map(或Set?)找到最常见的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44842516/

相关文章:

java - 有没有办法在java中调用父类中的函数?

Java字计数器

java - 类型化与非类型化 ArrayList

不需要 XML 配置的 Java 数据库 API

java - 为什么不在一个类中编码呢?

java - 如何让文本字段记住在 GXT 中输入的单词的历史记录

Java:仅当选择右侧菜单项时才继续迭代数组列表

python - 字典中类内的函数

python - 当行具有多个值时比较 Python 中的两个 CSV 文件

java - 我无法从数组列表中打印用户输入