こんにちは私は、英語の単語の大きなリストを含むファイル(words.txt)をハッシュマップに読み込もうとしています。私はパスでファイルにアクセスしています。私の関数は、開かれているPathに渡され、内容をHashMapに入力しようとします。私は単語ごとにPath単語のすべての値を印刷することができますが、値をHashMapに格納するのに問題があります。私は、私のO(n)ArrayList実装よりも優れたSpellCheckerを作成しようとしています。 TrieやBKTreeで解決する前に、HashMapで解決したいと思います。パスから行ごとにHashMapに読み込む方法
要約:Pathで開いたword.txtファイルをHashMapに挿入するにはどうすればよいですか。
マイコード
private static void createMap(Path dictFile) throws Exception{
Map<Integer,String> theWords = new HashMap<>();
int count = 0;
try (Stream<String> stream = Files.lines(dictFile)) {
stream.forEach(theWords.put(count++, stream));
//stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
「カウント」とは何ですか?なぜ '0、stream'を' Map'に繰り返し入れていますか?あなたはlambdaについて学ぶ必要があるかもしれません - あなたは 'forEach'を正しく使っているようには見えません。 –
私はあなたがそれに鍵(整数)と文字列を与える必要があると信じています。 – Yawn
'String'を値として入れているわけではなく、' Stream'を置いています。あなたはlambdaについて学ぶ必要があります。あなたは 'forEach'の引数である' Consumer 'に値を渡す必要があります。また、 'Map'にインデックスで項目を追加するだけです。' List'とどう違うのでしょうか? 'Map'を使ってあなたの目標は何ですか? –