3
respostas

[Dúvida] Problemas na hora de fazer a lista

Olá, eu estou tentando fazer de um jeito diferente do proposto pelo vídeo, visto que eu gostaria de tentar fazer sozinho. Porém, tenho tido problema na hora de adicionar meus produtos e preços na lista. Primeiro eu crio essas duas classes:

-Classe compras:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Depois o Menu: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Porém, como podem ver, eu não consigo adicionar o produto e os preços na lista. Poderiam me ajudar?

3 respostas

Olá, Leonardo.

O "minhaLista" é uma lista do tipo "Compras". Então você precisará adicionar apenas este tipo de objeto nessa lista.

Para tanto, tente fazer a adição passando o objeto "compra":

minhaLista.add(compra);

Talvez fosse mais interessante que "Compras" administrasse os itens comprados:

package compras;

import java.util.HashMap;
import java.util.Map;

public class Compras {
    private double limite;
    private double saldo;
    private Map<String, Double> compras = new HashMap<>();
    
    public double getLimite() {
        return limite;
    }
    public void setLimite(double limite) {
        this.limite = limite;
    }
    public double getSaldo() {
        return saldo;
    }
    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }
    public Map<String, Double> getCompras() {
        return compras;
    }
    public void setCompras(Map<String, Double> compras) {
        this.compras = compras;
    }
}

Assim cada ocorrência de "Compras" teria a relação do que foi comprado.

Alterando a classe "Compras" dessa forma, a adição de itens dentro do bloco while ficaria assim:

            System.out.println("Digite a descricao da compra: ");
            String descricao = leitura.next();
            System.out.println("Digite o preço da compra: ");
            double preco = leitura.nextDouble();
            compra.getCompras().put(descricao, preco);

Desculpa, gostaria de saber para que serve o HashMap exatamente?

Olá, Leonardo.

De uma forma bem simples:

Para declararmos nosso mapa usamos a interface "Map". Como é uma interface, a implementação não é feita nela.

Então, precisamos usar uma classe que implemente essa interface. Além de HashMap, temos outras opções como TreeMap e LinkedHashMap.

HashMap, TreeMap e LinkedHashMap são classes que implementam a interface de um mapa (Map).

A principal diferença entre eles seria que HashMap não preserva a ordem de inserção dos objetos no mapa.