2012-02-28 26 views
8

Sé el significado de foreach en la programación y cuándo usarlo. ¿Hay una palabra clave foreach en Java? Traté de encontrar una lista de palabras clave, pero solo hay for y no foreach.palabra clave foreach en java?

Respuesta

2

foreach no es una palabra clave java (IDE lo reconoce y coloca el bucle "For-each").

2

No. Para hacer un "foreach", se escribe for(Type variable : collection){ .... }

(Sí, ya sé que no tiene que ser un Collection, sólo una Iterable o una matriz - sólo estoy tratando de escribir con claridad)

21

Que yo sepa, Java no tiene una palabra clave foreach (a diferencia de C# si no me equivoco). Sin embargo, puede iterar sobre todos los elementos de una colección Iterable usando una versión modificada del bucle for:

List<String> list = new ArrayList<String>(); 
... 
for (String str : list) 
{ 
    System.out.println(str); 
} 

Comprobar this enlace para obtener más información.

+0

Otros detalles: Eclipse define un código _foreach_ plantilla, que le dará este tipo de for-loop cuando lo usa ... – quaylar

2

NO. foreach no es una palabra clave en Java.

El bucle foreach es una sintaxis simple para iterar a través de matrices o colecciones, implementando la interfaz java.lang.Iterable.

En lenguaje Java, la palabra clave for y el operador : se usan para crear un bucle foreach.

// Java example 
String[] oddBalls = {"one", "three", "five", "seven"}; 

for (String currentBall : oddBalls) 
{ 
    System.out.println (currentBall + " is an odd number."); 
} 

El for bucle básico se amplió en Java 5 para hacer iteración sobre matrices y otras colecciones más convenientes. Esta nueva declaración for se llama enhanced for o foreach.

3

No, no hay palabras clave como foreach. Y solo quería agregar que se agregó bucle for mejorado solo por la conveniencia de la codificación. El compilador vuelve al formato antiguo de Java. Al igual que :

List<String> list = new ArrayList<String>(); 
    for (String str : list) 
    { 
     System.out.println(str); 
    } 

se convertirá a:

List list = new ArrayList(); 
    String str; 
    for(Iterator iterator = list.iterator(); iterator.hasNext(); System.out.println(str)) 
    { 
     str = (String)iterator.next(); 
    } 
5

A partir de Java 1.8, Java ahora tiene un bucle foreach ...

package org.galarik.arick; 

import java.util.ArrayList; 
import java.util.List; 

public class ExampleForEach { 

    public static void main(String[] args) { 
     List<String> strings = new ArrayList<>(); 
     strings.add("Mom"); 
     strings.add("Dad"); 
     strings.add("Dad's Java"); 
     strings.add("Mom's Java"); 

     // Original for loop 
     int stringsSize = strings.size(); 
     Object[] oldStrings = strings.toArray(); 
     for(int stringIndex = 0; stringIndex < stringsSize; ++stringIndex) { 
      System.out.println("Original Content: " + oldStrings[stringIndex]); 
     } 

     // For loop, as of Jova 1.5 
     for (String string : strings) { 
      System.out.println("All Content: " + string); 
     } 

     // forEach loop as of Java 1.8 
     strings.stream().forEach((string) -> { 
      System.out.println("For Content: " + string); 
     }); 

     // Using forEach loop to do a filter 
     strings.parallelStream().filter(someString -> someString.contains("Java")) 
       .forEach((someOtherString) -> { 
        System.out.println("Content With Java: " + someOtherString); 
       }); 
    } 
} 
Cuestiones relacionadas