Comece agoraComece grátis

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

Ver curso

Instruções do exercicio

  • Recupere o currentCount da 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;
    }
}
Editar e Executar Código