Implementando um aplicativo de análise de texto
Você está desenvolvendo um aplicativo de análise de texto que precisa contar a frequência das palavras em um documento. Você deve implementar uma solução com complexidade de tempo ideal para buscas de palavras.
Este exercicio faz parte do curso
Otimização de Código em Java
Instruções do exercicio
- Recupere o
currentCountda palavra quando ela já estiver no mapa de frequências. - Incremente esse valor e atualize o mapa de frequências com o valor atualizado.
- Se a palavra ainda não estiver no mapa de frequências, adicione-a.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
public class Main {
public static void main(String[] args) {
TextAnalyzer analyzer = new TextAnalyzer();
List words = Arrays.asList(
"Java", "is", "a", "programming", "language",
"Java", "is", "widely", "used", "for", "building", "applications",
"Many", "programmers", "use", "Java", "for", "web", "development", "and", "Android", "apps"
);
Map wordFrequency = analyzer.buildWordFrequencyMap(words);
System.out.println("Word frequency analysis:");
for (Map.Entry entry : wordFrequency.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue() + " occurrences");
}
}
}
class TextAnalyzer {
public Map buildWordFrequencyMap(List words) {
Map frequencyMap = new HashMap();
for (String word : words) {
if (word.isEmpty()) {
continue;
}
word = word.toLowerCase();
if (frequencyMap.containsKey(word)) {
// Retrieve the frequency of the word
int currentCount = ____.get(____);
// Increment the frequency of the word
frequencyMap.put(____, currentCount + 1);
} else {
// If the frequency map does not have the word, add it.
____.____(word, 1);
}
}
return frequencyMap;
}
}