public void test(){
String x;
List<String> list=Arrays.asList("a","b","c","d");
list.forEach(n->{
if(n.equals("d"))
x="match the value";
});
}
1. उपर्युक्त कोड की तरह, मैं foreach ब्लॉक के बगल में एक चर के मान को सेट करना चाहता हूं, क्या यह काम कर सकता है?जावा 8 में, लैम्बडास फोरैच ब्लॉक में वैश्विक मूल्य कैसे सेट करें?
2. और क्यों?
3. और foreach iterator आदेश या विकार में है?
4. मुझे लगता है कि लैमडास फोरैच ब्लॉक इटेटरेटर के लिए अच्छा और सरल है, लेकिन यह वास्तव में जावा 7 या उससे पहले के काम के बजाए करना एक जटिल बात है।
अपने पाश 'द्वारा अगर (list.stream() को फिल्टर (" डी ":: बराबर होती है (उदाहरण के लिए) बदला जा सकता है) .findAny () .isPresent()) x = "मान से मेल खाता है"; '। ज्यादातर स्थितियों में, बाहरी चरों को कुशलतापूर्वक इस्तेमाल किए बिना कोड लिखने का एक तरीका होगा। – assylias
@assylias: 'if (list.stream()। AnyMatch (" d ":: बराबर)) ...' या 'if (list.contains (" d ")) ...' – Holger
@ होल्गर अरघ - मैं हमेशा इसके बारे में भूल जाता हूं विधि (anyMatch) और हाँ वास्तव में, भी बेहतर है। धन्यवाद! – assylias