Programa de banco

Estou criando um programa para uma atividade da faculdade onde preciso criar um sisteminha de banco, nesse programa temos as agencias e as contas.

Como cada conta tem uma agencia, eu queria fazer algo assim:

Agencia tem: Nome, ID (o id eu usaria a própria posição da lista)
Conta tem: Nome, Saldo, Limite

Então eu precisaria de duas classes, uma com agencia e uma com classe, e então conta herda agencia

Aqui chegamos ao meu problema: Eu não consigo acessar a lista de contas dentro da lista de agencias…

case "ver":
System.out.println("\nAgências encontradas:");
            for (int i = 0; i < contasAgencias.size(); i++) {
                System.out.println(contasAgencias.get(i));
                for (int j = 0; j < contasAgencias.get(listContas.size()); j++) {
                    contasAgencias.get(listContas);
                }
            }

eu sei, essa forma de acessar o for j que eu tentei é estranhamente bizarra para estar correta, estou tentando… Edit: Eu tentei outras formas e não consegui com o contasAgencias.get(i).listContas.size()

Aliás, onde crio as listas está assim:

public class Agencias {

String nomeAgencia = null;
ArrayList<Contas[]> listContas = new ArrayList<>();//armazena todas as contas
ArrayList contasAgencias = new ArrayList(listContas);//armazena todas as agencias E CONTAS

public Agencias(String nomeAgencia, int idAgencia, ArrayList<Contas[]> listContas) {
    this.nomeAgencia = nomeAgencia;
    this.listContas = listContas;
}
}

me ajudem a fazer isso da forma correta pf :confused:

Primeiramente gostaria de questionar sua construção de classe, quando você diz que uma conta herda uma agencia ela ganha uma herança e nesse caso, eu acredito que não tem haver, cada conta tem sim uma agencia, mas ela não é uma agencia (que é o que acontece com a herança!!)

1 curtida

ola

isso nao faz sentido.

vc pode definir que uma agencia tem varias contas, List<Conta>

LOGO a lista de todas as agencias seria List<List<Conta>> agencias = new ArrayList<>();

adicionar uma agencia é simples. listar tambem, bastaria um duplo loop (ainda mais usando foreach loop)

se vc tem liberdade, eu pensaria em um Map<Integer, Conta> para vc pegar a conta de uma vez so, sem ficar fazendo loop. Um hashmap resolveria.

todas as agencias

Map<Integer, Map<Integer, Conta>> agencia = new HashMap<>();

ai basta estudar as interfaces Map e List pra entender o motivo :slight_smile:

Opa, desculpa a demora, Universidade come nosso tempo as vezes ksksks

Interessante isso, vou dar uma olhada em hashMap então, parece mais eficiente de se utilizar, valeu.

valeus, dei uma pesquisada sobre a construção de classes e essa dica do “É UM” :smiley:

1 curtida