forEach

6 respostas
cafezin

Usando o forEach é possível saber qual o primeiro e último elemento de uma lista?

6 Respostas

alucardeck

dah sim… mas ainda eh melhor usar o Iterator neste caso…

pro primeiro item… vc faria uma condicao booleana indicando que ele eh o primeiro… e grava numa variavel…

para o ultimo… vc declararia a variavel de iteração fora do loop… assim que o loop acabasse vc teria acesso a ela ainda…

entendeu? =]

cafezin

alucardeck:
dah sim… mas ainda eh melhor usar o Iterator neste caso…

pro primeiro item… vc faria uma condicao booleana indicando que ele eh o primeiro… e grava numa variavel…

para o ultimo… vc declararia a variavel de iteração fora do loop… assim que o loop acabasse vc teria acesso a ela ainda…

entendeu? =]

Olha eu entendi mas vc ta falando sobre variavel de iteracao, entao nao eh um foreach certo?

alucardeck

o que é um forEach para voce?

ArrayList list = new ArrayList<String>();

for(String str : list){

}

isso não é?

ViniGodoy

Na verdade, o funcionamento seria exatamente igual. Isso porque o método hasNext() só retorna false depois do último elemento ter sido removido com o comando next(). Então, não adianta a variável de iteração ter sido declarada fora do loop.

É possível saber quem é o primeiro e o último elemento, mas o código é extremamente ineficiente:

SuaClasse primeiro = null; SuaClasse ultimo = null; boolean primeiro = true; for (SuaClasse elemento : suaLista) { if (primeiro) { primeiro = elemento; } ultimo = elemento; }

Se você tiver um List em mãos, use os índices:

SuaClasse primeiro = list.get(0);
SuaClasse ultimo = list.get(list.size()-1);

Se tiver em mãos um SortedSet, use os métodos first() e last().

cafezin

Pra pegar o último era simples !

SuaClasse ultimo = list.get(list.size()-1);

Obrigado Viny. E obrigado allucardeck

Já resolvi aqui.
Vou dar uma olhada nesse SortedSet que não conhecia.

[ ]

Priuli

cafezin:
Pra pegar o último era simples !

SuaClasse ultimo = list.get(list.size()-1);

Obrigado Viny. E obrigado allucardeck

Já resolvi aqui.
Vou dar uma olhada nesse SortedSet que não conhecia.

[ ]

Só não vai usar este codigo dentro do loop pois a performace vai lá embaixo…

Criado 31 de março de 2011
Ultima resposta 4 de abr. de 2011
Respostas 6
Participantes 4