java - 按字母顺序排序后,如何获取列表中最重复值的计数?

标签 java string duplicates

获取列表中重复次数最多的值并按降序排序的最简单方法是什么... 例如:

List<String> list = new ArrayList<>(List.of("Renault","BMW","Renault","Renault","Toyota","Rexon","BMW","Opel","Rexon","Rexon"));

` “renault”和“rexon”是最重复的,如果按字母顺序降序排序,我想得到 rexon。

最佳答案

我认为最具可读性和优雅的方式之一是使用 Streams API

strings.stream()
       .collect(Collectors.groupingBy(x -> x, Collectors.counting()))
       .entrySet().stream()
       .max(Comparator.comparingLong((ToLongFunction<Map.Entry<String, Long>>) Map.Entry::getValue).thenComparing(Map.Entry::getKey))
       .map(Map.Entry::getKey)
       .ifPresent(System.out::println);

关于java - 按字母顺序排序后,如何获取列表中最重复值的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66215714/

相关文章:

java - Android获取变量名

java - Spring和MyBatis中语句的参数group_id没有找到TypeHandler

java - JSTL fn :length() Function with byte[]

javascript - 在 JavaScript 中从 JSON 中删除具有重复数组成员的元素

Java - 更改 JTable 中某些单元格的颜色

string - 获取不带字符的字符串的所有子串的时间复杂度是多少?

java - 使用 IndexOf() 查找字符串中某个字符的第 n 次出现

c# - 一个字符串中有多少个指定的字符?

python - 从字典中删除重复的 Pandas 数据框

python - 具有重复值的 Sqlite 列