कारण किया जा रहा है कि आप अभी भी सूचियों की एक सूची प्राप्त कर रहे हैं है, क्योंकि जब आप Stream::of
लागू यह की एक नई धारा लौटा रहा है मौजूदा वाले
कि है जब आप Stream::of
प्रदर्शन यह {{{1,2}}, {{3,4}}, {{5,6}}}
तो होने की तरह है जब आप प्रदर्शन flatMap
यह ऐसा करने की तरह है:
{{{1,2}}, {{3,4}}, {{5,6}}} -> flatMap -> {{1,2}, {3,4}, {5,6}}
// result after flatMap removes the stream of streams of streams to stream of streams
बल्कि आप .flatMap(Collection::stream)
उपयोग कर सकते हैं जैसे धाराओं की एक धारा लेने के लिए:
{{1,2}, {3,4}, {5,6}}
और इसे चालू करें:
{1,2,3,4,5,6}
इसलिए, आप के लिए अपने वर्तमान समाधान बदल सकते हैं:
List<Integer> result = list.stream().flatMap(Collection::stream)
.collect(Collectors.toList());
स्रोत
2017-05-29 23:53:16
उपयोग 'flatMap (धारा में मदद करता है -> स्ट्रीम) 'इसके बजाए। –
यह काम किया। '.flatMap (एल -> एल। स्ट्रीम())'। यह क्यों काम करता है, लेकिन 'स्ट्रीम :: का' नहीं है? –
'Stream.of' _adds_ एक आयाम। –