私はJavaのコースでHashMapsについて学んでいます.HashMapにテキストファイルのすべての単語を格納し、それぞれのユニークな単語と量を出力するタスクがありますそのファイル内での出現。私はこれを行う方法を見つけ出すことができませんでしたHashMapファイル内の文字列の出現[JAVA]
はので、ここで助けを検索し、このリンクを見つけた:Using HashMap to count instances
私が適応と使用ポスターのコードを自分のプログラムに、それが働いていたが、私は完全には理由を理解していません私は自分自身をしなかったことを私が理解していない何かを与えたくありません。
以下に完全なコードを掲載しましたが、誰かがセクションのコメント機能について説明してください。リスト内のすべての文字列については
public class Q3HM {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<String, Integer>(50, 10);
*****//Not sure what the (50,10) is for
try {
File input = new File("input.txt");
Scanner read = new Scanner(new FileInputStream(input));
ArrayList<String> list = new ArrayList<>();
while (read.hasNext()) {
list.add(read.next());
}
*******//Not sure how the below for loop works
for (String w : list){
Integer i = map.get(w);
if(i == null){
map.put(w, 1);
}
else {
map.put(w, i+1);
}
}
*******//End of section I'm confused about
System.out.println(map.toString());
}
catch (Exception e){
e.printStackTrace();
}
}
}
あなたの質問を最も重要ではないのはなぜですか?それはあなたが実際にループのために興味を持っているものですか? https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html – Roland
また、[javadoc from HashMap(int、float)](https: //docs.oracle.com/javase/8/docs/api/java/util/HashMap.html#HashMap-int-float-)を「(50、10)」に追加します。しかし、解決策を探す前に、少なくともそれを自分で解決しようとしてください。 – Roland