[Resolvido]ArrayList

Caros,
gostaria de uma ajuda.

Estou com problema em excluir todos os elementos de uma arrayList
Esse método abaixo, criei com o intuito de remover todos os objetos da array

public void zeraCupom(){ for(int i = 0; i < carrinho.size(); i++){ carrinho.remove(i); }

No entanto ele não exclui todos os objetos.
Ele exclui se tiver somente um objeto, quando coloco dois objetos dentro dessa Array e mando remover tudo através desse método,
acaba que fica um objeto lá ainda.

Ou seja preciso que toda vez que eu chamar esse método, a ArrayList Carrinho fico com o tamnho zero.
Se puderem me ajudar.

Grato

Oi pablosnr,

estranho isso, o código parece certo.

Uma pergunta, porque voce está percorrendo a lista em vez de usar um “carrinho.clear();” ?

public void zeraCupom(){ carrinho.clear(); }

public void zeraCupom(){ carrinho = new ArrayList<T>(); }

A memória vai ser limpa pelo garbage colector no caso acima, então não precisa nem excluir elemento a elemento, é até interessante instanciar uma nova lista.

O problema do seu código está em usar o método size de List como condição para terminar o laço. Pois a cada elemento removido o size da lista diminui em um, e o i sempre é incrementado em um. Por isso ao final do laço nem todos elementos foram removidos.

A saída é usar o método clear que o pessoal já sugeriu.

Muito obrigado a todos. Vocês são demais.

Problema Resolvido!