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.
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.