primeiro é preciso saber se você sabe o que é um Iterator...
Um objeto Iterator é capaz de varrer uma coleção, através de 3 funções
Iterator itr = lista.iterator();
itr.hasNext() //verifica se há mais objetos
itr.next() //retorna o proximo objeto
itr.remove() //remove o ultimo objeto chamado através de next
vc conhece um for ?? um for é dividido assim
for ( atribuições ; condição ; operação por iteração )
em "atribuições" vc pode definir variáveis que so existirão dentro do scopo, ou seja, quando o for acaba as variáveis defindas ali, perdem suas referencias e ficam elegiveis para o coletor de lixo, assim vc pode otimizar a memoria...
em "condição" é um boolean que faz o loop se manter dentro do for
em "operação por iteração" é uma operação realizada apos cada loop, que neste nosso caso não é necessária.
colocando de forma literal o que escrevi esta escrito o seguinte
para ( "Um iterator de produtos" ; "enquanto houver produtos" ; "não precisa fazer nada aqui" ) {
se ("o nome do proximo produto for igual ao enviado") {
"remova o produto";
}
}