5
में मैपर्स की एक स्ट्रीम को अन्य स्ट्रीम में लागू करें जावा 8 में मेरे पास एक स्ट्रीम है और मैं मैपर्स की स्ट्रीम लागू करना चाहता हूं।जावा 8
उदाहरण के लिए:
Stream<String> strings = Stream.of("hello", "world");
Stream<Function<String, String>> mappers = Stream.of(t -> t+"?", t -> t+"!", t -> t+"?");
मैं लिखना चाहते हैं:
strings.map(mappers); // not working
लेकिन मेरे काम के हल के लिए अपने मौजूदा सबसे अच्छा तरीका है:
for (Function<String, String> mapper : mappers.collect(Collectors.toList()))
strings = strings.map(mapper);
strings.forEach(System.out::println);
मैं इस समस्या को कैसे हल कर सकते हैं
- मेरी धाराप्रवाह कोड
अन्य रूपों है कि काम करते हैं: 'mappers.reduce (Function.identity(), समारोह :: और फिर) ',' mappers.reduce (फंक्शन.डिडिटी(), फंक्शन :: लिखें) '। – rgettman
@getgetman: 'orElse' संस्करण एक छोटा अनुकूलन है क्योंकि यह किसी अन्य फ़ंक्शन के साथ पहचान फ़ंक्शन को गठबंधन नहीं करता है। – Holger
यह अच्छा होगा अगर 'function.identity()' ओवरराइड 'लिखें' और 'और फिर' ... या शायद जेआईटी कंपाइलर इस जटिलता से छुटकारा पायेगा? –