Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 15 da Aula 5 - Collections framework

Olá senhores.

Mais uma pergunta aos Gurus, na verdade um ajuda com o código. Estou recebendo um NullPointerException, quando tento adicionar minha conta dentro do Map. Poderia me ajudar?

Segue o código:

Class Conta

import java.util.LinkedList;
import java.util.List;
import java.util.Map;


public class Banco {
    private List<Conta> contas=new LinkedList<Conta>();
    private Map<String, Conta> mapDeContas;

    void adicionaConta(Conta c){
        contas.add(c);
        mapDeContas.put(c.getDono().getNome(), c);
    }
    Conta pega(int posicao){
        return contas.get(posicao);
    }
    int totalDeContas(){
        return contas.size();
    }

    public Conta buscaPorNome(String nome){
        Conta res=mapDeContas.get(nome);
        return res;
    }
}

Class Main

import java.util.Random;


public class TestaBanco {
    public static void main(String[] args) {
        Banco conta = new Banco();
        Random ramdon=new Random();

        ContaCorrente cc1 = new ContaCorrente();
        cc1.deposita(ramdon.nextInt(1000)+ramdon.nextDouble());
        cc1.dono.setNome("Alba");
        conta.adicionaConta(cc1);

        System.out.println(conta.buscaPorNome("Alba"));

    }
}
3 respostas

Não posso te dar certeza, mas creio que seja aqui:

mapDeContas.put(c.getDono().getNome(), c);

Tenta colocar assim:

mapDeContas.put(c.getDono(), c.getNome());

Dica: Siga um padrão de nomenclatura com get para pegar valores, e set para colocar valores! Deixa o código mais legível.

solução!

Rodrigo ,

seu problema é que nenhum momento você está instanciando a variavel mapDeContas

neste caso você tera que fazer o seguinte :

private Map<String, Conta> mapDeContas = new HashMap();

espero ter te ajudado , Bons Estudos

Danilo, era isso mesmo. Sempre esqueço disso :(

Obrigado pela ajuda