我正在处理一个项目,其中我们向Map中插入键值对。
如果该键存在于Map中,我的代码将返回该键的值。
然而,尽管该键存在,但HashMap并未返回预期的值。
首先,我从文件中读取键和值对,然后我读取另一个文件,该文件几乎具有与第一个文件相同的键。
然后,我为一些键返回值,但对于许多键,其值为null。
以下是我的代码片段:
我的输入文件是:
abc;1
def;2
ghi;3
...
并且名称将会是:
abc
def
如果该键存在于Map中,我的代码将返回该键的值。
然而,尽管该键存在,但HashMap并未返回预期的值。
首先,我从文件中读取键和值对,然后我读取另一个文件,该文件几乎具有与第一个文件相同的键。
然后,我为一些键返回值,但对于许多键,其值为null。
以下是我的代码片段:
Scanner scanner = new Scanner(new FileReader("a.txt"));
LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
while (scanner.hasNextLine())
{
String[] columns = scanner.nextLine().split(";");
map.put(columns[0], columns[1]);
}
System.out.println(map);
for (Map.Entry<String, String> entry : map.entrySet())
{ // name is the input of second file
if (entry.getKey().equals(name))
{
num = entry.getValue();
fun(num);
}
}
我的输入文件是:
abc;1
def;2
ghi;3
...
并且名称将会是:
abc
def
System.out.printf("@%s@\n", name)
放在循环外面,将System.out.printf("@%s@\n", entry.getKey())
放在循环内部,并更新问题的输出?@
表示空格。 - Miserable Variablemap.get(name)
。我非常怀疑使用它会导致任何错误,这些错误在迭代条目集时也不会出现。 - Dennis Meng