Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में Collection.stream().forEach() और Collection.forEach() के बीच अंतर

Collection.stream().forEach() और Collection.forEach() दोनों का उपयोग संग्रह पर पुनरावृति करने के लिए किया जाता है।

Collection.forEach() संग्रह के पुनरावर्तक का उपयोग करता है। अधिकांश संग्रह उन पर पुनरावृति करते हुए संरचनात्मक रूप से संशोधन की अनुमति नहीं देते हैं। यदि कोई तत्व पुनरावृत्ति के दौरान जोड़ता या हटाता है तो वे तुरंत समवर्ती संशोधन अपवाद फेंक देंगे। यदि Collection.forEach() सिंक्रनाइज़ किए गए संग्रह पर पुनरावृति कर रहा है तो वे संग्रह के खंड को लॉक कर देंगे और इसे सभी कॉलों पर रोक देंगे।

Collection.stream ()। forEach () का उपयोग संग्रह को पुनरावृत्त करने के लिए भी किया जाता है, लेकिन यह पहले संग्रह को स्ट्रीम में परिवर्तित करता है और फिर संग्रह की धारा पर पुनरावृति करता है इसलिए प्रसंस्करण क्रम अपरिभाषित है। यह समवर्ती संशोधन अपवाद भी फेंकता है, यदि कोई संरचनात्मक परिवर्तन उन पर पुनरावृत्ति करते समय हुआ तो यह तुरंत एक अपवाद फेंक देगा।

<टेबल> <थेड> सीनियर। नहीं।
<वें शैली ="पाठ-संरेखण:केंद्र;">कुंजी
<वें शैली ="पाठ-संरेखण:केंद्र;"> संग्रह। प्रत्येक के लिए ()
<वें शैली ="पाठ-संरेखण:केंद्र;"> संग्रह.स्ट्रीम ()। प्रत्येक के लिए ()

1

बुनियादी

Collection.forEach() संग्रह के पुनरावर्तक का उपयोग करता है

Collection.stream().forEach() का उपयोग संग्रह को पुनरावृत्त करने के लिए भी किया जाता है लेकिन यह पहले संग्रह को स्ट्रीम में परिवर्तित करता है और फिर संग्रह की धारा पर पुनरावृति करता है

2

आदेश

यदि कोई निर्दिष्ट किया जाता है, तो इसे हमेशा Iterable के पुनरावृत्ति क्रम में निष्पादित किया जाता है।

आदेश परिभाषित नहीं है

3

लॉक

यदि सिंक्रनाइज़ किए गए संग्रह पर पुनरावृत्ति हो रही है तो यह संग्रह को लॉक कर देता है और इसे सभी कॉलों में पकड़ लेता है

यह संग्रह को लॉक नहीं करता है

4.

अपवाद

संग्रह में किसी भी संरचनात्मक संशोधन के मामले में यह तुरंत एक अपवाद फेंक देगा

अपवाद बाद में फेंका जाएगा

उदाहरण Collection.stream().प्रत्येक के लिए

आयात करें सूची जोड़ें ("राम"); list.add ("ट्यूटोरियल पॉइंट्स"); list.stream().forEach(System.out::print); }}

उदाहरण संग्रह.प्रत्येक के लिए

आयात करें सूची जोड़ें ("राम"); list.add ("ट्यूटोरियल पॉइंट्स"); list.forEach(System.out::print); }}
  1. जावा में सीरियलाइज़ेशन और एक्सटर्नलाइज़ेशन के बीच अंतर

    सीरियलाइज़ेशन और एक्सटर्नलाइज़ेशन दोनों किसी ऑब्जेक्ट को स्ट्रीम बाइट में बदलने और डेटाबेस या मेमोरी में बाइट स्ट्रीम को स्टोर करने की प्रक्रियाएँ हैं। java.io.Serializable इंटरफ़ेस को लागू करने वाले वर्ग को क्रमबद्ध किया जा सकता है। दूसरी ओर, आवेदन में आवश्यकता के आधार पर कस्टम क्रमांकन के लिए उपयो

  1. जावा में इटरेटर और एन्यूमरेशन के बीच अंतर

    इटरेटर और एन्यूमरेशन दोनों ही संग्रह से किसी तत्व को पार करने और एक्सेस करने के लिए कर्सर हैं। वे दोनों संग्रह ढांचे से संबंधित हैं। संग्रह ढांचे में JDK1.0 और Iterator में JDK.1.2 संस्करण में गणना जोड़ी गई थी। एन्यूमरेशन संग्रह में संरचनात्मक परिवर्तन नहीं कर सकता क्योंकि इसमें संग्रह में तत्व तक

  1. जावा में ऐरेलिस्ट और हैशसेट के बीच अंतर

    हैशसेट और ऐरेलिस्ट दोनों ही जावा संग्रह ढांचे के कुछ सबसे महत्वपूर्ण वर्ग हैं। ArrayList और हैशसेट के बीच महत्वपूर्ण अंतर निम्नलिखित हैं। सीनियर। नहीं. कुंजी ऐरेलिस्ट हैशसेट 1 कार्यान्वयन ArrayList सूची इंटरफ़ेस का कार्यान्वयन है। दूसरी ओर हैशसेट एक सेट इंटरफ़ेस का कार्यान्वयन है। 2 आंतरिक क