private static List<Pair> success() {
return IntStream.range(0, 10).
mapToObj(Integer::new).flatMap(i -> IntStream.range(12, 15).
mapToObj(j -> new Pair(i, j))).
collect(Collectors.toList());
}
static List<Pair> fail() {
Stream<Integer> outer = IntStream.range(0, 10).mapToObj(Integer::new);
IntStream inner = IntStream.range(12, 15);
Stream<Pair> pairStream = outer.flatMap(i ->
inner.mapToObj(j -> new Pair(i, j)));
return pairStream.collect(Collectors.toList());
}
通过将Maptoobj(integer::new)
替换为boxed
,可以使其更加简洁--但除此之外,Java并没有那么简洁:
IntStream.range(0, 10)
.boxed()
.flatMap(i -> IntStream.range(12, 15)
.mapToObj(j -> new Pair(i, j)))
.collect(Collectors.toList());
至于第二个问题:还有其他与问题相关的答案。具体问题是,内部
不是一次使用,而是每次使用外部flatmap()
。
它是这样工作的:
final IntStream range = IntStream.range(0, 10);
List<Pair> ps = range
.boxed().flatMap(i -> {
final IntStream range1 = IntStream.range(12, 15);
return range1.
mapToObj(j -> new Pair<>(i, j));
}).
collect(Collectors.toList());
使用以下代码,我得到以下编译错误。我还尝试使用输入作为整数列表,而不是int[],这样做效果很好。如果我使用box(),它也可以正常工作。 我的问题真的是如果Int Stream必须是整数流,以及如何处理错误消息“lambda表达式int[]中的错误返回类型无法转换为int” 错误:(13,49)java:不兼容的类型: lambda表达式int[]中的错误返回类型无法转换为int错误:(13,6
在我从在线材料中找到的以下jooq片段中,有一个从“jooq结束于此”到“流开始”的转换 这是否意味着SQL查询生成发生,直到取得()?之后stream()启动,一切都在java进程内存中 或者像active record DSL这样的java 8流和整个代码段是否转换为SQL查询,包括stream()部分? 这是因为我已经看到了示例,其中sortBy/group pingBy是在许多在线示例的流
我不是只想用第一个数字来完成这个操作,而是使用while循环和if条件,使我在键盘上输入的任何内容都变成一个整数。 你觉得问题出在哪里?请帮帮我.
问题内容: 如何使用Math.random生成随机整数? 我的代码是: 它显示的全部是0,我该如何解决? 问题答案: 将abc转换为整数。
我有这些学生物品清单, 我想从这些学生列表对象生成哈希图。 hashmap包含sudentid和name list键值对。
上周在一条流中出现了非常奇怪的NPE,这给我带来了很多麻烦,所以现在我觉得在使用流时使用NPE太安全了。 下面是我现在的方法: 我的问题是,我在这里处理的是外部POJO,所以我无法更改它并使其为空安全,所以我必须调整我的代码。 这里有一些限制:1)errorList-此处不能为null,因此调用是安全的-当它为空时,它只会返回false 2)和都可以为null,这就是为什么我使用这样的过滤器来确保