我在 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/