计算地图中的单词:最大数字不会增加

时间:2017-08-12 13:08:06

标签: java

我正在用Java制作一个单词云程序,目前我很难计算单词。我不允许使用像kennykumo或opencloud这样的库来完成大部分工作。

用户输入一个文本墙,我已取出停用词并将结果放入ArrayList。然后,我正在搜索有效的事件,每次找到重复的单词时,它会将其添加到地图中,但它包含每一个计数,我需要最高计数。是找到每个单词最高的循环吗?

一旦我能够获得该单词的出现次数,我可以继续为其分配最大的字体,然后是下一个最大的字体,依此类推,并显示给用户查看。

这是图片中的代码以及我尝试过的一些解决方案。

ArrayList<String> wordsList = new ArrayList<>();
for (String word : arList) {
    if (!stopWordList.contains(word)) {
        wordsList.add(word);
        int occurrences = Collections.frequency(wordsList, word);

        //System.out.println(word +" "+ occurrences);

        Map<Integer, String> map = new TreeMap<Integer, String>();
        //HashMap<Integer, String> map = new HashMap<>();
        map.put(occurrences, word);

        //Map<String, Long> counts = wordsList.stream().collect(Collectors.groupingBy(e -> e, Collectors.counting()));
        System.out.println(map);
        //map.forEach((k,v)->System.out.println("Count : " + k + " word : " + v));
        Map<Integer, String> map2 = new TreeMap(Collections.reverseOrder());
        map2.putAll(map);
     }
}

感谢您的帮助。

0 个答案:

没有答案