たとえば、次の種類のデータを含むファイルがあるとします。
info1 word1
info2 word2
info3 word3
info2 word4
等
次に、各行の単語のマッピング関数を作成します。そこで、最初にその行を読み、スペースを使用して分割し、単語を取得します。
これで、この単語が値になります。私はすべての言葉が異なっていてユニークであることを知っています。ただし、情報は一意ではない場合があります。
キーについては、各単語に関連する情報に主に関心があるため、基本的にすべての行である文字列を作成するだけです。
情報は変わらないかもしれませんが、言葉は間違いなく違うので、線は間違いなく違います。
ファイルには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) {
}
}
前もって感謝します