gpt4 book ai didi

java - map.get(key) 返回 true 而不是 value

转载 作者:行者123 更新时间:2023-12-02 02:08:31 25 4
gpt4 key购买 nike

这是我第一次在这个网站上提问,所以希望我没有弄乱任何格式。不管怎样,我在从 map 的键/值对获取值时遇到了一些麻烦。我最初将键(字符串“word”的可能许多子字符串中的一个)与抽象 HashSet 配对以保存“word”然而,当我尝试打印出与键配对的值时,我期望它返回该集合。我收到的是“true”。关于如何打印这组单词有什么建议吗?我是否必须使集合成为非抽象才能使其工作?

预先感谢您的帮助!

/**
* Method that is used to load a file containing a list of words
*
* @param fileName the name of the file containing words
* either is .txt or .csv format
*/
@Override
public void initialize(String fileName) {
File file = new File(fileName);
String word;

try {
Scanner scan = new Scanner(file);
while (scan.hasNext()) {
word = scan.next();

for (int i = 0; i <= word.length(); i++) {
wordMap.putIfAbsent(word.substring(0, i), new HashSet<>().add(word));

System.out.println(wordMap.get(word.substring(0, i)));
}
}
} catch(IOException e){
//Exception handling stuff
}
}

最佳答案

这是API docs对于 HashSet.add :

public boolean add(E e)

Adds the specified element to this set if it is not already present. More formally, adds the specified element e to this set if this set contains no element e2 such that (e==null ? e2==null : e.equals(e2)). If this set already contains the element, the call leaves the set unchanged and returns false.

换句话说,new HashSet<>().add(word)始终是 boolean 值 true这就是您要添加的内容。

要创建一个表达式中包含一个元素的新 HashSet,您可以使用 new HashSet<>(Collections.singleton(word))

关于java - map.get(key) 返回 true 而不是 value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50380605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com