2012-02-28 11 views
8

मुझे प्रोग्रामिंग में foreach का अर्थ और इसका उपयोग कब करना है। क्या जावा में foreach कीवर्ड है? मैंने कीवर्ड की एक सूची खोजने की कोशिश की लेकिन केवल for और foreach नहीं है।जावा में foreach कीवर्ड?

उत्तर

2

foreach जावा कीवर्ड नहीं है (आईडीई इसे पहचानता है और "For-each" लूप डालता है)।

2

नंबर एक "foreach", आपके द्वारा लिखी ऐसा करने के लिए for(Type variable : collection){ .... }

(हाँ, मैं जानता हूँ कि यह एक Collection होने की जरूरत नहीं है, बस एक Iterable या किसी सरणी - मैं तो बस स्पष्ट रूप से लिखने के लिए कोशिश कर रहा हूँ)

21

मेरे ज्ञान के लिए, जावा में foreach कीवर्ड नहीं है (यदि सी गलत नहीं है तो सी # के विपरीत)। this लिंक अधिक जानकारी के लिए

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

चेक: आप फिर भी, पर एक Iterable संग्रह में सभी तत्वों को पाश के लिए का एक संशोधित संस्करण का उपयोग कर पुनरावृति कर सकते हैं।

+0

अतिरिक्त जानकारी: ग्रहण एक _foreach_ कोड को परिभाषित करता है टेम्पलेट, जो आपको इस प्रकार के फॉर-लूप देगा जब आप इसका उपयोग करेंगे ... – quaylar

2

नहीं। foreach जावा में कोई कीवर्ड नहीं है।

foreach लूप java.lang.Iterable इंटरफ़ेस को कार्यान्वित करने के लिए सरणी या संग्रह के माध्यम से पुनरावृत्ति के लिए एक सरल वाक्यविन्यास है।

जावा भाषा में, for कीवर्ड और : ऑपरेटर का उपयोग foreach लूप बनाने के लिए किया जाता है।

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

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

बुनियादी for पाश सरणियों और अन्य संग्रह और अधिक सुविधाजनक से अधिक यात्रा करने के लिए जावा 5 में बढ़ा दिया गया। यह नया for कथन enhanced for या foreach कहा जाता है।

3

नहीं, foreach जैसे कोई कीवर्ड नहीं है। और बस जोड़ना चाहता था कि लूप के लिए बढ़ाया गया कोडिंग सुविधा के लिए जोड़ा गया था। कंपाइलर इसे पुराने जावा प्रारूप में वापस रखता है। तरह:

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(); 
    } 
5

जावा 1.8 के रूप में, जावा अब एक 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); 
       }); 
    } 
}