【问题标题】:How to use Stream.flatMap()? [duplicate]如何使用 Stream.flatMap()? [复制]
【发布时间】:2017-02-16 06:56:17
【问题描述】:

我有Stream<SortedSet<String>>,我只想拥有一个Stream<String>。我尝试使用flatMap(),但它不起作用,因为它不能平整 Sortedset 流。

String productName = "p1";
Set<Product> products = new HashSet<>();
products.add(new Product(productName));
Stream<SortedSet<String>> sortedSetStream = products.stream().map(p -> Util.getProductNames(p) );

【问题讨论】:

    标签: java java-8 java-stream


    【解决方案1】:

    要从这些对象的集合流中获取所有对象的流,您需要展平这些集合。任何集合都可以转换为流:

    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 );
    

    【讨论】:

      猜你喜欢
      • 2015-12-15
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 2013-08-08
      • 2012-09-08
      相关资源
      最近更新 更多