मुझे लगता है कि मुझे अपनी टिप्पणी को थोड़ा विस्तार देने की आवश्यकता है ...
प्रतिमान शैली के बारे में
यह शायद सबसे उल्लेखनीय पहलू है। एफपी लोकप्रिय हो गया जिसके कारण आप दुष्प्रभावों से बच सकते हैं। मैं इस बात से गहराई से सहमत नहीं हूँ कि आप इससे क्या प्राप्त कर सकते हैं, क्योंकि यह प्रश्न से संबंधित नहीं है।
हालांकि, मैं यह कहूंगा कि Iterable.forEach का उपयोग करने वाला पुनरावृत्ति FP से प्रेरित है और इसके बजाय Java में अधिक FP लाने का परिणाम है (विडंबना यह है कि मैं कहूंगा कि शुद्ध FP में forEach के लिए कोई बहुत अधिक उपयोग नहीं है, क्योंकि यह शुरू करने के अलावा कुछ भी नहीं है। दुष्प्रभाव)।
अंत में मैं यह कहूंगा कि यह स्वाद की शैली का मामला है। आप वर्तमान में लिख रहे हैं।
समानता के बारे में।
प्रदर्शन के दृष्टिकोण से Iterable.forEach foreach (...) के उपयोग से कोई उल्लेखनीय लाभ नहीं है।
Iterable.forEach पर आधिकारिक डॉक्स के अनुसार :
Iterable की सामग्री पर दी गई कार्रवाई करता है, क्रम में तत्वों में पुनरावृत्ति तब होती है , जब तक कि सभी तत्वों को संसाधित नहीं किया जाता है या कार्रवाई अपवाद नहीं फेंकती है।
... यानी डॉक्स बहुत स्पष्ट है कि कोई अंतर्निहित समानता नहीं होगी। एक जोड़ना एलएसपी उल्लंघन होगा।
अब, "समानता संग्रह" हैं जो जावा 8 में वादा किए गए हैं, लेकिन उन लोगों के साथ काम करने के लिए जिन्हें आपको मेरे लिए और अधिक स्पष्ट करने की आवश्यकता है और उनका उपयोग करने के लिए कुछ अतिरिक्त देखभाल करें (उदाहरण के लिए mschenk74 का उत्तर देखें)।
BTW: इस मामले में Stream.forEach का उपयोग किया जाएगा, और यह गारंटी नहीं देता है कि वास्तविक कार्य समानता में किया जाएगा (अंतर्निहित संग्रह पर निर्भर करता है)।
अद्यतन: यह स्पष्ट नहीं है और एक नज़र में थोड़ा बढ़ाया जा सकता है लेकिन शैली और पठनीयता परिप्रेक्ष्य का एक और पहलू है।
सबसे पहले - सादे पुराने फ़ोरलॉप्स सादे और पुराने हैं। हर कोई उन्हें पहले से ही जानता है।
दूसरा, और अधिक महत्वपूर्ण - आप शायद Iterable.forEach का उपयोग केवल एक-लाइनर लैम्ब्डा के साथ करना चाहते हैं। यदि "शरीर" भारी हो जाता है - तो वे पठनीय नहीं होते हैं। आपके पास यहां से 2 विकल्प हैं - आंतरिक कक्षाएं (yuck) का उपयोग करें या सादे पुराने forloop का उपयोग करें। लोग अक्सर परेशान हो जाते हैं जब वे एक ही चीजों को देखते हैं (संग्रह पर पुनरावृत्त) एक ही कोडबेस में विभिन्न vays / शैलियों को किया जा रहा है, और यह मामला प्रतीत होता है।
फिर, यह एक मुद्दा हो सकता है या नहीं हो सकता है। कोड पर काम करने वाले लोगों पर निर्भर करता है।