由于 Java 对集合的函数式操作并非原生态的,必须对得到的 stream() 进行过滤等操作,之后还是一个 stream(),一般我们最后返回给调用者需还原为相应的集合。这无法与 Scala 的 for ... yield
操作相比。例如下面在使用 Stream API 过滤获得所有大于 3 的数字之后,方法的返回值还应该还原为 List<Integer>, 这个需求非常自然
1 2 3 4 5 |
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); List<Integer> greaterThan3(list) { Stream<Integer> streamOfInteger = list.stream().filter( i -> i > 3); return streamOfInteger.ToIntegerList......; } |
我们这儿的问题就是如何把上面的 streamOfInteger 转换为 List<Integer>, 有以下几种办法 阅读全文 >>