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

Não mostra a posição 0 da lista

Gostaria de entender o motivo da primeira referência não aparecer ao ser executado o for.

package br.com.bytebank.banco.test.arreylist;

import java.util.ArrayList;

import br.com.bytebank.banco.modelo.Cliente;
import br.com.bytebank.banco.modelo.Conta;
import br.com.bytebank.banco.modelo.ContaCorrente;

public class Teste {

    public static void main(String[] args) {
        ArrayList lista = new ArrayList();

        Cliente t = new Cliente("","","");
        Conta cc = new ContaCorrente(t, 22, 11);
        lista.add(cc);

        Cliente t1 = new Cliente("","","");
        Conta cc2 = new ContaCorrente(t1, 22, 22);
        lista.add(cc2);

        System.out.println("Tamanho: " + lista.size());

        Conta ref = (Conta) lista.get(0);
        System.out.println(ref.getNumero());

        lista.remove(0);
        System.out.println("Tamanho: " + lista.size());

        Cliente t2 = new Cliente("","","");
        Conta cc3 = new ContaCorrente(t2, 33, 311);
        lista.add(cc3);

        Cliente t3 = new Cliente("","","");
        Conta cc4 = new ContaCorrente(t3, 33, 322);
        lista.add(cc4);

        for(int i = 0; i < lista.size(); i++) {
            Object oRef = lista.get(i);
            System.out.println(oRef);
        }

        System.out.println("----------");

        for(Object oRef : lista) {
            System.out.println(oRef);
        }

    }

}

Quando testo o código aparece o resultado abaixo:

Conta Corrente: Número: 22 Agencia: 22

Conta Corrente: Número: 311 Agencia: 33

Conta Corrente: Número: 322 Agencia: 33


Conta Corrente: Número: 22 Agencia: 22

Conta Corrente: Número: 311 Agencia: 33

Conta Corrente: Número: 322 Agencia: 33

Como podemos analisar não aparece a posição 0 da lista.

4 respostas

Marky, em determinado ponto do seu código você removeu o primeiro registro da lista:

lista.remove(0);

Por isso esse registro não aparece na iteração do for

solução!

Acontece que você colocou a seguinte linha:

lista.remove(0);

Com isso o elemento 0 passou a ser a conta denominada cc2. A conta com nome cc1 foi removida com a linha de código que indiquei.

Comente a linha com o comando abaixo, ou remova ela do código.

lista.remove(0);

Obrigado a todos, acabei esquecendo dessa linha.