BISHI23 小红书推荐系统

求解代码

java 复制代码
public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

    String str = br.readLine();
    
    String[] wordStrings = str.split("\\s+");

    Map<String, Integer> hMap = new HashMap<>();
    
    for (String word : wordStrings) {
        hMap.put(word, hMap.getOrDefault(word, 0) + 1);
    }

    //    Map.Entry<String, Integer>:表示Map中的一个键值对(包含key和value)
    List<Map.Entry<String, Integer>> keywords = new ArrayList<>();
    
    for (Map.Entry<String, Integer> entry : hMap.entrySet()) {
        // 只保留出现次数≥3的单词
        if (entry.getValue() >= 3) {
            keywords.add(entry);
        }
    }

    keywords.sort((o1, o2) -> {

        if (!o1.getValue().equals(o2.getValue()) ) {
            return o2.getValue() - o1.getValue();// 降序
        } else {
            return o1.getKey().compareTo(o2.getKey());// 升序
        }
    });

    for(Map.Entry<String,Integer> entry:keywords){
        out.println(entry.getKey());
    }

    out.flush();
    out.close();
    br.close();
}

小贴士

  • hMap.entrySet()返回一个包含所有 Entry 的集合(Set<Map.Entry>);

  • EntryMap 中键值对的最小封装单元,一个 Entry 对象 = 一个 key + 一个对应的 value。

相关推荐
小岛前端4 小时前
AI Skills 已经封神,但新的问题却越来越严重!
前端·后端·github
拖孩4 小时前
一个人 + AI 做的小程序,上线 15 天赚了 10 块 5
前端·后端·微信小程序
newerp4 小时前
CRUD 操作与预处理语句
后端·程序员·go
智码看视界4 小时前
Day 56:AI辅助开发全面提效:Copilot + Cursor的Java开发
java·单元测试·copilot·cursor·后端开发·代码审查·ai辅助开发
wei_shuo4 小时前
KES 数据同步与ETL实战:数据集成、转换与实时同步方案
后端
乒乓狂魔14786739970004 小时前
LangGraph:用一张图,编排一群 AI 助手
后端
Gopher_HBo4 小时前
请求绑定 binding(binding/ 包)
后端
Cache技术分享4 小时前
504. Java 反射 - 创建一个简单的依赖注入框架
前端·后端
asdfg12589634 小时前
一个例子理解Java中的函数式接口
java·函数式接口
Java内核笔记4 小时前
Spring Boot 4 虚拟线程源码剖析:Tomcat 线程池是怎么被换掉的
spring boot·后端