कहें कि मेरे पास एक इंटीजर सूची है और मैं अपने मूल्यों को दोगुना करने के लिए सूची में प्रत्येक विधि के लिए जावा 8 का उपयोग कर रहा हूं।प्रत्येक जावा को संशोधित नहीं करता है (8) संग्रह
List<Integer> l = Arrays.asList(2,3,6,1,9);
l.forEach(p->p*=2);
foreach विधि के रूप में उपभोक्ता लेते हैं और इसे methos स्वीकार कॉल: मैं निम्नलिखित कोड है कहो। मैं उपरोक्त कोड को चलाने के बाद सूची मुद्रित करता हूं और मूल सूची नहीं बदली जाती है।
जहां तक मैं समझता हूँ स्ट्रीम स्रोत में परिवर्तन नहीं करता, लेकिन यहाँ मैं सिर्फ प्रत्येक तत्व पर विधि स्वीकार ...
map
forEach
के insted उपयोग करने के लिए परिवर्तन करने के लिए advace में यू धन्यवाद
आपके उत्तर के लिए धन्यवाद। लेकिन अगर टी कुछ वस्तु संदर्भ है और मैं अपनी सामग्री को प्रत्येक लूप के भीतर बदलता हूं तो मुझे अपनी नई सामग्री देखना चाहिए। – user1409534
नहीं, यह लैम्बडा के साथ या बिना सच नहीं है, और कभी नहीं किया गया है। –
@ user1409534 - आप ऑब्जेक्ट संदर्भ बिंदु को ऑब्जेक्ट की सामग्री बदल सकते हैं, लेकिन यह सूची को अद्यतन नहीं करता है। सूची को अपडेट करने के लिए (जिस तरह से आप करने का प्रयास कर रहे हैं), आपको ऑब्जेक्ट संदर्भ को किसी अन्य सूची में प्रतिस्थापित करना होगा। आप इसे 'forEach() 'के साथ नहीं कर सकते हैं। और निश्चित रूप से लैम्ब्डा इसे नहीं कर सकता/नहीं कर सकता। –