1
resposta

[Projeto] Solução do desafio de compras (de forma diferente)

Quando fui apresentado ao desafio, principalmente na parte de "printar" no terminal os itens com seus valores, eu pensei logo em HashMap. Venho estudando algoritmos e estruturas de dados e me pareceu mais intuitivo o uso dessa estrutura de dado.

Criei duas classes para esse projeto, "Account" e "Cart". Um seria o saldo e o outro o carrinho, onde ficam guardados os produtos e os valores. Uma das funções da classe do carrinho é "printCart":

    public void printCart() {
        TreeMap<String, Integer> sortedHashMap = new TreeMap<>();
        sortedHashMap.putAll(cart);
        System.out.println("---------------------------");
        for (String item : sortedHashMap.keySet()){
            System.out.println("Item: " + item + ". Value: " + sortedHashMap.get(item));
        }
        System.out.println("---------------------------");
    }

Como o HashMap não é naturalmente ordenado, tive de transformar ele em um TreeMap, que automaticamente ordena os itens pelo nome (chave, key), deixando a lista em ordem alfabética. Acredito que o HashMap seja uma estrutura de dado ideal para trabalhar com produtos, uma vez que seu tempo de pesquisa é de O(1), muito rápido para a maioria das ações envolvendo compra, pesquisa, etc.

1 resposta

Oi, Marcelo! Como vai?

Com o que você descreveu, a solução usando HashMap e convertendo para TreeMap chamou atenção pela clareza na organização da lista e pelo foco em ordenar a saída no terminal. Sua abordagem faz sentido para quem está explorando estruturas de dados e quer aproveitar pesquisa rápida e ordenação simples.

Uma dica interessante para o futuro é usar o método entrySet(), que facilita percorrer chaves e valores sem precisar consultar o mapa novamente. Veja este exemplo:


for (Map.Entry<String, Integer> entry : cart.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

Esse código percorre o mapa acessando a chave e o valor diretamente, evitando chamadas extras.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!