Kri*_*sag -2 java collections stream java-8
要过滤List
我们可以使用
a1.stream().filter(x->x>6).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
并过滤我使用的两个列表 FlatMap
Stream<List<Integer>> s2=Stream.of(a1,a2);
s2.flatMap(x->x.stream()).sorted().filter(x->x>6).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
但我尝试以这种方式过滤单个 List
Stream<List<Integer>> s1=Stream.of(a1);
s1.map(x->x.stream()).filter(x->x>2).forEach(System.out::print);
Run Code Online (Sandbox Code Playgroud)
我有一个错误--- The operator > is undefined for the argument type(s) Stream<Integer>, int
但是当我在地图中使用 flatMap 时没有错误为什么
Stream<List<Integer>> s1=Stream.of(a1);
s1.flatMap(x->x.stream()).filter(x->x>2).forEach(System.out::print);
Run Code Online (Sandbox Code Playgroud)
如果您正在调用map(x->x.stream())
a Stream<List<Integer>>
,您将得到一个Stream<Stream<Integer>>
。您不能应用.filter(x->x>2)
that 的元素Stream
,因为这些元素是Stream<Integer>
s,并且>
运算符需要两个数字操作数。
如果使用flatMap
而不是,则将您map
转换Stream<List<Integer>>
为 a,Stream<Integer>
其元素是List
原始 s 的所有元素Stream
。因此,您可以.filter(x->x>2)
对它们应用过滤器。
归档时间: |
|
查看次数: |
147 次 |
最近记录: |