ключевое слово foreach в Java? - PullRequest
       18

ключевое слово foreach в Java?

11 голосов
/ 28 февраля 2012

Я знаю значение foreach в программировании и когда его использовать.Есть ли ключевое слово foreach в Java?Я пытался найти список ключевых слов, но есть только for, а не foreach.

Ответы [ 6 ]

26 голосов
/ 28 февраля 2012

Насколько мне известно, в Java нет ключевого слова foreach (в отличие от C #, если я не ошибаюсь).Однако вы можете перебрать все элементы в коллекции Iterable, используя модифицированную версию цикла for:

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

Проверьте эту ссылку для получения дополнительной информации.

6 голосов
/ 18 апреля 2015

Начиная с 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);
                });
    }
}
3 голосов
/ 03 октября 2012

Нет, здесь нет таких ключевых слов, как foreach. И просто хотел добавить, что улучшенный цикл был добавлен только для удобства кодирования. Компилятор возвращает его в старый формат 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();
    }
3 голосов
/ 28 февраля 2012

Нет.Чтобы сделать foreach, вы пишете for( Type variable : collection ){ .... }

(Да, я знаю, что это не обязательно должен быть Collection, просто Iterable или массив - я просто пытаюсьпиши четко)

1 голос
/ 28 февраля 2012

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.");
}

Базовый цикл for был расширен в Java 5, чтобы сделать итерацию по массивам и другим коллекциям более удобной. Этот новый оператор for называется enhanced for или foreach.

1 голос
/ 28 февраля 2012

foreach не является ключевым словом java (IDE распознает его и помещает цикл « For-each »).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...