当前位置: 首页 > 知识库问答 >
问题:

HashMap。get返回true而不是元素

萧宏远
2023-03-14

所以我正在尝试制作一个程序,它将使用HashMap计算一个唯一单词出现在一个小文件中的次数。但是,当我尝试通过在我的HashMap上使用. get(key)来增加重复单词的计数时,它返回true而不是我想要转换为的整数值。如何让我的代码返回值而不是布尔值?这是我到目前为止的代码:

public class CountWords
{
public static void main (String[] args) {
    Map<String, Object> words = new HashMap<>();
    ArrayList<FindCommons> list = new ArrayList<>();
    
    read(words, list);
    
    for (int i = 0; i < list.size(); i++) {
        System.out.println(list.get(i));
    }
}

public static void read (Map<String, Object> words, ArrayList<FindCommons> list) {
    try {
        BufferedReader input = new BufferedReader (new FileReader ("file.txt"));
        String line = "";
        while ((line = input.readLine()) != null) {
            StringTokenizer st = new StringTokenizer(line);

            while (st.hasMoreTokens()) {
                line = st.nextToken();
                
                if (words.containsKey(line)) {
                    System.out.println(words.get(line)); //this returns boolean
                    //int count = (int) words.get(line));
                    words.put(line, list.add(new FindCommons(1, line)));
                }
                else {
                    words.put(line, list.add(new FindCommons(1, line)));
                    
                }
            }
        }

        input.close();
    }
    catch (FileNotFoundException e){
    }
    catch (IOException e){ 
    }
}
}

我的FindCommons类:

导入java。util。ArrayList;公共类FindCommons{

private String word;
private int count;

public FindCommons(int count, String word) {
    this.count = count;
    this.word = word;
}

public int getNumber() {
    return count;
}

public String getWord() {
    return word;
}

public String toString() {
    return String.format("%-20s %5d", word, count);
}

}

共有2个答案

丁曦
2023-03-14

list.add(新的FindCommons(1, line))

廉高邈
2023-03-14

您已使用words.put(line,list.add(new FindCommons(1, line)));将项目添加到HashMap。问题是,list.add()返回一个布尔值,因此它将布尔值放入单词HashMap中。

 类似资料:
  • 问题内容: 这怎么可能? 这是 您会看到它应该在这里: 到底是怎么回事? 问题答案: (此答案中的代码已针对Swift 3及更高版本进行了更新。) 显然,您的变量是a (描述文件路径)。要以字符串形式获取路径,请使用属性,而不是: 以字符串格式(包括方案等)返回URL 。 例:

  • 问题内容: 如果某些列返回FALSE,如何显示不同的值, 例如, COLUMN“ BASIC”返回FALSE,但我需要为用户显示YES或NO。情况为FALSE,请返回NO。 问题答案: 如果是varchar或bit,则处理NULL 或者如果只是一点点 编辑:

  • 问题内容: 据我所知,使用或实例化对象分别返回或的新实例。具有 新标识 的新实例对象。 在我实际测试它之前,这对我来说是很清楚的,我注意到它实际上返回了而不是预期的: 如预期的那样,分别使用和创建对象时,也会表现出这种行为: 我可以在状态文档中找到唯一相关的信息: […]例如,return和return 。 如果未提供任何参数,则构造函数将创建一个新的空元组。 可以说,这不足以回答我的问题。 那么

  • 问题内容: 我有一个发出AJAX调用的功能(通过jQuery)。在本节中,我有一个函数说: 但是,如果我这样称呼它: 第一个永远不会被调用。 如果将an 放入函数中,则为true,但在该函数返回之前不会为true 。 可以将回调函数传递给我的方法吗?喜欢: 问题答案: 是一个 回调 函数。它将由Ajax对象调用-异步!-操作完成时。您无法捕捉回调的结果,只有Ajax对象可以做到这一点。 您的函数-

  • 无论如何,这个公式是否可以修改为返回,例如:找到单词“哇”,并将该单词返回到单元格中,而不是true/false? 谢谢。

  • 问题内容: 我将数据存储在HashMap中(键:字符串,值:ArrayList)。我遇到问题的部分声明了一个新的ArrayList“当前”,在HashMap中搜索字符串“ dictCode”,如果找到,则将current设置为返回值ArrayList。 “ current = …”行返回编译器错误: 我不明白… HashMap是否返回一个Object而不是我存储在其中的ArrayList作为值?如