程序就是数据结构+算法,要解决这个问题,我们得找到适用的数据结构以及一个好的算法。
既然要找出出现频率最高的10个单词,我们必须统计每个单词出现的次数。一个单词对应一个数字,在java中这种结构用map来实现最方便了,key-value形式的键值对,不会重复又可以很好的统计结果。
关于这个问题的算法,我没有想到特别好的,就是利用一些文件操作函数,遍历整个文本,统计单词。
具体实现步骤:
1、遍历文本,统计不同单词出现的次数(这里要注意判别是否是单词)。
2、对map的value进行降序排列(这里运用了java中collections.sort()方法来排序),列出前十个单词。
先贴上用visualvm测试的截图:
以下是我的代码:
import java.util.*;
import java.util.Map.Entry;
import java.io.*;
import junit.framework.TestCase;
public class