Map按value降序并统计

java 复制代码
package com.ldj.cloud.user.demo;

import java.util.*;

/**
 * User: ldj
 * Date: 2024/5/11
 * Time: 10:03
 * Description: map按value降序
 */
public class Tr {

    public static void main(String[] args) {

        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("c");
        list.add("c");

        //去重分类
        Set<String> set = new HashSet<>(list);

        //为每一种元素,分配一个箩筐
        Map<String, Integer> map = new LinkedHashMap<>();
        set.forEach(ele -> {
            map.put(ele, 0);
        });

        //挑拣元素,如果同一种元素,放入对映的箩筐(+1)
        list.forEach((item -> {
            if (map.containsKey(item)) {
                map.put(item, map.get(item) + 1);
            }
        }));

        System.out.println(map);

        //map降序(重要)
        List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
        entries.sort((o1, o2) -> o2.getValue() - o1.getValue());
        
        //找到数量最多那个元素
        System.out.println(entries);
        System.out.println(entries.get(0).getKey());
        System.out.println(entries.get(0).getValue());
    }

}

代码优化

java 复制代码
    public static void main(String[] args) {

        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("c");
        list.add("c");

        //去重分类 (伪代码)Rset当Redis的set
        Set<String> set = new HashSet<>(list);
        Map<String, Integer> map = new LinkedHashMap<>();

        list.forEach(item -> {
            map.put(item, map.get(item) != null ? (map.get(item) + 1) : 1);
        });

        System.out.println(map);
    }

借助Redis找出重复的元素

相关推荐
青云交27 分钟前
Java 大视界 -- Java 大数据在智能医疗远程手术机器人操作数据记录与分析中的应用(342)
java·大数据·数据记录·远程手术机器人·基层医疗·跨院协作·弱网络适配
知北游天34 分钟前
Linux:多线程---同步&&生产者消费者模型
java·linux·网络
钢铁男儿44 分钟前
C#接口实现详解:从理论到实践,掌握面向对象编程的核心技巧
java·前端·c#
深栈解码1 小时前
第二章:Class文件解剖:字节码的二进制密码
java·后端
TeamDev1 小时前
从 JavaFX WebView 迁移至 JxBrowser
java·后端·webview
麦兜*1 小时前
【SpringBoot 】Spring Boot OAuth2 六大安全隐患深度分析报告,包含渗透测试复现、漏洞原理、风险等级及完整修复方案
java·jvm·spring boot·后端·spring·系统架构
用户40315986396631 小时前
在工作中学算法——专线配置
java·算法
用户40315986396631 小时前
在工作中学算法——基于日志的系统故障预测
java·算法
浩瀚星辰20241 小时前
C++树状数组详解
java·数据结构·算法
h0l10w2 小时前
【Java】MongoDB
java·开发语言·mongodb