Есть ли альтернатива в Java, которая может соответствовать foreach, который существует в некоторых других языках, таких как C # - PullRequest
0 голосов
/ 01 ноября 2011

Есть ли в Java альтернатива, которая может соответствовать foreach{}, доступная на других языках, таких как C # или VB или на других языках?Иногда, в некоторых очень специфических обстоятельствах, это может быть очень полезно и почти обязательно.

Может ли следующий цикл while(){} в Java быть заменен циклом foreach или некоторыми другими понятиями, которые могут существовать в Java и соответствовать foreach?

public class Demo
{
    public static void main(String[] args)
    {
        ArrayList<String> arrayList = new ArrayList<String>();

        arrayList.add("A");
        arrayList.add("B");
        arrayList.add("C");
        arrayList.add("D");
        arrayList.add("E");

        Iterator<String>it=arrayList.iterator();

        while(it.hasNext())
        {
            System.out.println(it.next());
        }
    }
}

Я продолжил долгий поиск в Google, но не смог.

1 Ответ

8 голосов
/ 01 ноября 2011

Если объект реализует Iterable или это массив, то вы можете использовать расширенный цикл for-each (представленный в Java 5.0)

for(E e : MyCollection) {
    // stuff
}

Если ваш пример, вы можете сделать

ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");

for(String s : list) System.out.println(s);

Технически, в вашем примере использовался непараметрический список, поэтому вы должны использовать

for(Object o : arrayList) System.out.println(o.toString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...