2012-02-28 3 views
8

私はforeachの意味を知っていて、プログラミングと使用のタイミングを知っています。 Javaにforeachというキーワードがありますか?私はキーワードのリストを見つけようとしましたが、ではなく、forしかありません。 「foreachの」を行うにはjavaのforeachキーワードですか?

答えて

2

foreachはjavaキーワードではありません(IDEはそれを認識し、 "For-each"ループを作成します)。

2

いいえ、あなたは(はい、私はちょうどIterableや配列、それがCollectionである必要はありません知っているfor(Type variable : collection){ .... }

を書く - 私はちょうど明記しようとしています)

21

私の知るところでは、Javaはforeachというキーワードを持っていません(誤解されていなければC#と異なります)。ただし、forループの修正版を使用してIterableコレクション内のすべての要素を反復処理することができます

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

チェックthisリンクを詳細については。

+0

追加情報:Eclipseは_foreach_コードを定義しますテンプレートを使用すると、このようなfor-loopが得られます... – quaylar

2

いいえ。 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と呼ばれます。

3

いいえ、foreachのようなキーワードはありません。 そして、強化されたforループは、コーディングの便宜のために追加されたものです。 コンパイラは古いjava形式に戻します。 ように:

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

がに変換されます:Javaの1.8のとおり

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

、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); 
       }); 
    } 
} 
関連する問題