java hashmap 单词计数

博客探讨了如何在Java中使用HashMap统计文本文件中单词的出现次数。作者遇到困难,试图使用TreeMap、keySet和Iterator来实现,但代码不完整。回答建议使用SPL脚本来简化操作,通过读取文本、拆分单词、分组累计来实现,并指出SPL的groups功能性能出色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【问题】

I am trying to code to read info from a text file, I need to find out how many times each word separated by white space occurs. I then need to output in alphabetical order with the count of each word. I am looking to use a TreeMap, keySet() and an Iterator. My code is very incomplete and I am quite stuck.

    import java.util.HashMap;

    import java.util.Map

    public class WordCount<E extends Comparable<E>> {

        private static Map<String, Integer> map = new HashMap<String, Integer>();

        static {

            fillMap(map, "Alice.txt");

        }

        private static void fillMap(Map<String, Integer> map, String fileName) {

       }

}

【回答】

       将文件拆成单词集合,之后按单词分组汇总即可,但JAVA编码复杂度较高,建议用SPL写好脚本再嵌入Java:

A
1=file("d:\\data.txt").read()
2=A1.words()
3=A2.groups(~:word;count(~):count)


A1:从文本读取字符串

A2:将字符串拆分成单个单词组成的序列

A3:采用累计的方式对单词分组,并统计每种单词的数量

  SPL的groups就是用java的hashmap实现的,性能很好。写好的脚本如何在应用程序中调用,可以参考Java 如何调用 SPL 脚本

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值