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

#java #foreach

#java #foreach

Вопрос:

Есть ли какая-либо альтернатива в 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. Первый результат в Google для «foreach в java» — цикл For-Each

2. На самом деле, я сосредоточился на ключевом слове «foreach», поэтому я, возможно, не смогу его увидеть.

3. Никогда не предполагайте, что ключевые слова будут одинаковыми: P

Ответ №1:

Если объект реализует 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());