For each no java?

7 respostas
herbertins

Aew galera gostaria de saber se existe for each no java??

aew abs

7 Respostas

Mantu

para um vetor ou Collection chamado elementos que armazena elementos de um certo tipo T:

for(T elemento: elementos){
   //faça o que quiser com elemento
}
J

É como nosso amigo Mantu disse, mas vou adicionar só mais uma coisinha!!

for(T elemento: elementos){ //faça o que quiser com elemento }

O “elementos” poderá ser qualquer elemento que implemente a interface java.lang.Iterable, logo pode-se colocar qualquer Collection, Array ou outra instância de uma classe que implemente esta interface!!

public interface Iterable<T>{ public abstract Iterator<T> iterator(); }

Espero ter ajudado!!
Flw aew e t+!!

herbertins

valewwwww galera era soh um duvida que eu tinhaaa

um abs at todos

N

Tenho uma duvida pessoal. No caso do for each

for(T elemento: elementos){

2.     //faça o que quiser com elemento

3. }

Se o vetor elementos na primeira passada for null, dá erro?

peczenyj

Detalhe: existe desde o java 1.5

renamed

nadiafelix:
Tenho uma duvida pessoal. No caso do for each

for(T elemento: elementos){

2.     //faça o que quiser com elemento

3. }

Se o vetor elementos na primeira passada for null, dá erro?

Sim:

public static void main(String[] args) {
		List<String> lista = null;
		
		for(String a : lista){
			
		}
	}

Erro:

Exception in thread "main" java.lang.NullPointerException
M

E dá NullPointerException porque, na verdade, o foreach usa um Iterator. Tanto que os códigos abaixo correspondem:

for (T elemento : lista) {
// algo aqui
}

// é correspondente à

Iterator<T> iterator = lista.iterator(); // isso daria NPE se lista fosse null, assim como dá no caso do foreach
while (iterator.hasNext()) {
    T elemento = iterator.next();
    // algo aqui
}

É claro que o foreach deixa a leitura do código mais claro, mas a vantagem do Iterator é o método remove (se você tentar remover um elemento via foreach, vai receber um ConcurrentModificationException).

Criado 12 de janeiro de 2007
Ultima resposta 8 de jan. de 2010
Respostas 7
Participantes 7