当前位置: 首页 > 知识库问答 >
问题:

使用Java8流生成整数对

习阳
2023-03-14
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());
}

共有1个答案

萧和同
2023-03-14

通过将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,这就是为什么我使用这样的过滤器来确保