gpt4 book ai didi

Java 8 无限流输出

转载 作者:行者123 更新时间:2023-11-29 10:10:26 26 4
gpt4 key购买 nike

下面的代码使用 lambda 表达式 创建空的 Map Stream,下一行用于输出流中的任何元素。但是在运行代码时,它会提供无限输出。我不知道为什么,因为它应该在 map 为空时打印一次 {}。有人可以解释发生了什么吗?

 Stream<Map<String,String>> mapStream = Stream.generate(() -> {
return Collections.emptyMap();
});
mapStream.forEach(System.out::println);

最佳答案

来自 the documentation for Stream.generate

Returns an infinite sequential unordered stream where each element is generated by the provided Supplier. This is suitable for generating constant streams, streams of random elements, etc.

所以你有一个无限流,其中每个新元素都是通过调用 Supplier 创建的,如果一个空映射表示为 {} 那么你有一个流:

{}, {}, {}, {} ...

您正在寻找的是:

Stream.of(Collections.emptyMap()).forEach(System.out::println);

这将只打印 {}。 (虽然你为什么想要这个有点超出我的理解......)

关于Java 8 无限流输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38901285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com