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。

相关推荐
计算机学姐15 小时前
基于SpringBoot的校园二手交易系统
java·vue.js·spring boot·后端·spring·tomcat·intellij-idea
夕珩15 小时前
Java 排序算法详解:冒泡排序、选择排序、堆排序
java·算法·排序算法
紫檀香15 小时前
Alembic入门教程
后端·python
用户5805595021015 小时前
深入理解 Go defer(下):编译器与runtime视角的实现原理
后端·go
工边页字15 小时前
为什么 RAG系统里,Embedding成本往往远低于 LLM成本,但很多公司仍然疯狂优化 Embedding?
前端·人工智能·后端
9523615 小时前
初识多线程
java·开发语言·jvm·后端·学习·多线程
二哈赛车手15 小时前
新人笔记---责任链模式
后端
hongtianzai15 小时前
Laravel9.X核心特性全解析
android·java·数据库
小陈工15 小时前
2026年3月22日技术资讯洞察:数据库优化进入预测时代,网络安全威胁全面升级
java·开发语言·数据库·python·安全·web安全·django
小胖java15 小时前
养老院管理系统
java·spring boot