import java.io.*;
import java.util.*;
public class ListSetMap2
{
public static void main(String[] args)
{
Map<String, Integer> my_collection = new HashMap<String, Integer>();
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a file name");
String filenameString = keyboard.nextLine();
File filename = new File(filenameString);
int word_position = 1;
int word_num = 1;
try
{
Scanner data_store = new Scanner(filename);
System.out.println("Opening " + filenameString);
while(data_store.hasNext())
{
String word = data_store.next();
if(word.length() > 5)
{
if(my_collection.containsKey(word))
{
my_collection.get(my_collection.containsKey(word));
Integer p = (Integer) my_collection.get(word_num++);
my_collection.put(word, p);
}
else
{
Integer i = (Integer) my_collection.get(word_num);
my_collection.put(word, i);
}
}
}
}
catch (FileNotFoundException e)
{
System.out.println("Nope!");
}
}
}
Я пытаюсь написать программу, в которую он вставляет/сканирует файл, записывает слова в коллекции HashMap и подсчитывает время, когда это слово встречается в документе, только с надписью Учитывается 5 символов.Программа подсчета слов с использованием HashMaps
Это немного беспорядок посередине, но я столкнулся с проблемами, связанными с тем, как подсчитывать количество раз, когда это слово происходит, и ведение индивидуального подсчета для каждого слова. Я уверен, что здесь есть простое решение, и я просто пропустил его. Пожалуйста помоги!
Что конкретный вопрос? Каждая хэш-запись является парой ключ/значение, ключ - это слово, значение - это счетчик. –
Если это не домашнее задание, то ['Multiset'] Guava (https://github.com/google/guava/wiki/NewCollectionTypesExplained) является самым простым решением. –