我有 Stream<SortedSet<String>>
,我只想有一个 Stream<String>
。我尝试使用flatMap()
,但由于无法平面排序集而无法使用。
String productName = "p1";
Set<Product> products = new HashSet<>();
products.add(new Product(productName));
Stream<SortedSet<String>> sortedSetStream = products.stream().map(p -> Util.getProductNames(p) );
从这些对象的集合中获取所有对象的流,您需要将 flatten 收集。任何集合都可以转换为流:
Stream<SortedSet<String>> sortedSetStream = products.stream().map(p -> Util.getProductNames(p) );
Stream<String> ss = sortedSetStream.flatMap( s -> s.stream() );
或(如果您喜欢方法参考):
Stream<String> ss = sortedSetStream.flatMap( Collection::stream );