Java二进制搜索树和哈希表

时间:2013-06-07 11:38:25

标签: java hashtable binary-search-tree

我的课程作业(二进制搜索树和哈希表)我想创建一个java程序,它扫描文本文件并根据最常用的单词排序单词。像最流行的标签。

实施例:  1.扫描文件。  2.列出出现不止一次的单词

WORD TOTAL
香蕉10
孙7 海3

问题1.如何扫描文本文件?
问题2.如何检查文本文件中的重复项并编号?
问题3.如何按照我的例子打印出超过1次出现的单词?

我的编程不强。

2 个答案:

答案 0 :(得分:1)

由于它是课程作业,我不会向您提供完整的详细信息,但我会尽力指出您可能的方向:

  1. 谷歌如何从文本文件中读取单词(这是一个非常常见的问题,你应该能够找到大量的例子)。
  2. 使用实例hashmap(string to int)来计算单词:如果单词不在hashmap中,则添加多重性1;如果它在那里,增加计数(你可能想对单词进行一些预处理,例如,如果你想忽略大写)
  3. 从hashmap
  4. 过滤多重性大于1的单词
  5. 根据计数
  6. 对过滤后的单词列表进行排序

    一些非常高级的实现(有许多开放式结束:))

    List<String> words = readWordsFromFile();
    
    Map<String, Integer> wordCounts = new HashMap<>();
    for(String word : words) {
        String processedWord = preprocess(word);
        int count = 1;
        if (wordCounts.containsKey(processedWord)) {
            count = wordCounts.get(processedWord)+1;
        }
        wordCounts.put(processedWord, count);
    }
    
    removeSingleOccurences(wordCounts); 
    List<String> sortedWords = sortWords(wordCounts);
    

答案 1 :(得分:0)