假设我有一个文件,其中包含例如以下类型的数据:
info1 word1
info2 word2
info3 word3
info2 word4
ETC
现在,我想为每行中的单词创建一个映射函数。所以我最初读了这行,用空格分割它,然后得到这个词。
现在这个词将是价值。我知道所有的词都是不同的和独特的。但是,信息可能不是唯一的。
关于键,因为我最感兴趣的是与每个单词相关的信息,所以我只为它创建一个字符串,它基本上是所有的行。
我知道信息可能没有什么不同,但线条肯定是不同的,因为单词肯定不同。
该文件有 40000 行,但是 HashMap 的大小是 38490。
我不明白这里发生了什么。我的逻辑错了吗?
这是代码:
private static void loadInfo(HashMap<String, String> info, File File){
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String[] dataInLine = new String[2];
String line = br.readLine();
int counter = 0;
while (line != null) {
lineData = line.split("\\s+");
info.put(lineData[1], line);
line = br.readLine();
counter++;
}
System.out.println(counter); //counter shows the correct amount of lines
System.out.println(info.size()); //this shows less than the amount of lines
} catch (IOException io) {
}
}
提前致谢