Salve ! Estou com dúvida na hora de executar o main. O retorno do método buscaPorNome() sempre retorna null. Poderiam me ajudar ?
Classe Banco
package br.com.empresa.banco;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import br.com.empresa.conta.Conta;
public class Banco {
private String nome;
private List<Conta> contas = new ArrayList<>();
private Map<String, Conta> indexadoPorNome = new HashMap();
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public List<Conta> getContas() {
return contas;
}
public void setContas(List<Conta> contas) {
this.contas = contas;
}
public void adiciona(Conta c){
this.contas.add(c);
indexadoPorNome.put(c.getNome(), c);
}
public Conta getConta(int x){
return contas.get(x);
}
public int QuantidadeDeContas(){
return contas.size();
}
public Conta pega(int posicao){
return contas.get(posicao);
}
public int pegaQuantidadeDeContas(){
return contas.size();
}
public Conta buscaPorNome(String nome){
return indexadoPorNome.get(nome);
}
}
Classe Main
package br.com.empresa.teste;
import java.util.ArrayList;
import java.util.List;
import br.com.empresa.banco.Banco;
import br.com.empresa.conta.Conta;
import br.com.empresa.conta.ContaCorrente;
import br.com.empresa.conta.ContaPoupanca;
public class TestaBanco {
public static void main(String[] args) {
Banco b1 = new Banco();
List<Conta> contas = new ArrayList<>();
ContaCorrente c1 = new ContaCorrente();
c1.setNumero(123);
c1.setNome("Jose");
c1.setSaldo(2500.00);
ContaPoupanca c2 = new ContaPoupanca();
c2.setNumero(123);
c2.setNome("Maria");
c2.setSaldo(1500.00);
contas.add(c1);
contas.add(c2);
b1.setContas(contas);
System.out.println(b1.pegaQuantidadeDeContas());
System.out.println(b1.buscaPorNome("Jose"));
}
}
meu retorno é sempre 2(quantidade de contas) null(buscaPorNome), não sei onde estou errando. Obrigado.