【问题标题】:Convert Stream<List<Integer>> to IntStream using flatMapToInt() method使用 flatMapToInt() 方法将 Stream<List<Integer>> 转换为 IntStream
【发布时间】:2022-06-10 20:49:05
【问题描述】:

例子:

System.out.println("----flatMapToInt----"); 

Stream<List<Integer>> list = Stream.of( 
    Arrays.asList(1,2,3,4), 
    Arrays.asList(10,20,30,40)
); 
IntSteam list2 = list.flatMapToInt(...); 

如何使用 Java 8 或 Java 11 来实现?

【问题讨论】:

    标签: java java-8 java-stream java-11


    【解决方案1】:

    你可以这样做:IntStream intStream = list.flatMapToInt(l -&gt; l.stream().mapToInt(i -&gt; i));

    【讨论】:

      【解决方案2】:

      应用flatMap()mapToInt() 的组合比使用嵌套在flatMapToInt() 中的mapToInt() 更具可读性:

      Stream.of(List.of(1, 2, 3, 4), List.of(10, 20, 30, 40))
          .flatMap(List::stream)
          .mapToInt(Integer::intValue)
          ... // other operations
      

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 1970-01-01
        • 2021-10-13
        • 1970-01-01
        • 2010-09-06
        • 2016-12-26
        相关资源
        最近更新 更多