java中的foreach关键字?

时间:2012-02-28 07:57:21

标签: java for-loop foreach

我知道foreach在编程中的含义以及何时使用它。 Java中是否有foreach个关键字?我试图找到一个关键字列表,但只有for而不是foreach

7 个答案:

答案 0 :(得分:26)

据我所知,Java没有foreach关键字(如果我没弄错的话,与C#不同)。但是,您可以使用for循环的修改版本迭代Iterable集合中的所有元素:

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

查看this链接了解详情。

答案 1 :(得分:6)

从Java 1.8开始,Java现在有一个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);
                });
    }
}

答案 2 :(得分:3)

没有。要做“foreach”,你可以写for( Type variable : collection ){ .... }

(是的,我知道它不一定是Collection,只是一个Iterable或一个数组 - 我只是想写清楚)

答案 3 :(得分:3)

不,没有像foreach这样的关键字。 并且只是想添加增强的for循环,只是为了编码方便。 编译器将其恢复为旧的Java格式。 像:

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

将转换为:

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

答案 4 :(得分:1)

foreach不是java关键字(IDE识别它并放置“For-each”循环)。

答案 5 :(得分:1)

NO。 foreach不是Java中的关键字。

foreach循环是迭代数组或集合的简单语法 - 实现java.lang.Iterable接口。

在Java语言中,for关键字和:运算符用于创建foreach循环。

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

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

在Java 5中扩展了基本for循环,以便更方便地对数组和其他集合进行迭代。这个较新的for语句称为enhanced forforeach

答案 6 :(得分:0)

Java没有foreach之类的C#关键字。如果我们在Java中使用foreach,则会显示错误。 如果我们要使用foreach,则必须实现如下所示。

//sample Java Code
List<WebElement> radioButtons = driver.findElements(By.name("color"));

for(WebElement  radioButton : radioButtons)
    {
        if(radioButton.isSelected())
        {
            System.out.println(radioButton.getAttribute("value"));      
        }
    }

在这里,我们有Web元素单选按钮的列表,我们正在检查每个 元素用于特定条件。我们使用for关键字和: Java中的运算符。

C#的情况下,我们可以实现以下相同的情况

//C# code Sample
foreach(WebElement radioButton in  radioButtons)
{
  //implementation comes here 
}