स्ट्रीम करने के लिए एक सामान्य उदाहरण के साथ जावा 8 स्ट्रीम सिंटैक्स के चारों ओर अपना सिर प्राप्त करने का प्रयास कर रहा है। इस विषय पर अन्य समान प्रश्नों पर नज़र डालें, लेकिन मेरे समाधान से मेल खाने वाले किसी भी समाधान को नहीं मिला और मेरे लिए काम करेगा। मूल रूप से मैं नई धारा एपीआई का उपयोग करने दो नेस्टेड छोरों के साथ निम्नलिखित स्निपेट refactor करने के लिए कोशिश कर रहा हूँ:जावा 8 नेस्टेड लूप
List<Car> filteredCars = new ArrayList<>();
for (Car car : cars) {
for (Wheel wheel : wheels) {
if (car.getColor() == wheel.getColor() &&
wheel.isWorking() == true) {
filteredCars.add(car);
break;
}
}
}
return filteredCars;
प्रबंधित इस जो शून्य रिटर्न साथ आने के लिए:
return cars.stream().forEach(
car -> wheels.stream()
.filter(wheel -> wheel.getColor() == car.getColor() &&
wheel.isWorking() == true)
.collect(Collectors.toList()));
क्या धारा साथ कुछ गड़बड़ है ऊपर वाक्यविन्यास और मुझे क्या याद आ रही है?
एक सामान्य रूप में सलाह, पहले 'के लिए' देखने के व्यवहार को रोकें। एक बार जब आप इसे समझ लेते हैं और हमेशा दूसरे स्ट्रीम ऑपरेशंस को देखते हैं, तो आपको शायद इस तरह के प्रश्न पूछने की आवश्यकता नहीं होगी। इसके अलावा, 'wheel.isWorking() == true' जैसी सशर्तियों का उपयोग न करें, वे व्यर्थ हैं। बस 'wheel.isWorking()' का उपयोग करें, यह स्वयं के लिए बोलता है। – Holger