我正在尝试分别找出无限流和无限流动之间的概念差异(如果有的话)。
为此,我为无限流/流动提供了以下示例
@Test
public void infinteStream() {
//Prints infinite number of integers
Stream<Integer> infiniteStream = Stream.iterate(0, i -> i+1);
infiniteStream.forEach(System.out::println);
}
@Test
public void infiniteFlux() {
//Prints infinite number of date strings (every second)
Flux<LocalDateTime> localDateTimeFlux = Flux.interval(Duration.ofSeconds(1))
.map(t -> LocalDateTime.now());
localDateTimeFlux.subscribe(t -> System.out.println(t.format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"))));
}关于这些例子,我有一个问题:有没有类似于Flux的infinteStream() (和infinteFlux()的Stream )?更广泛地说,无限流和Flux之间有什么区别吗?
发布于 2018-10-17 02:48:26
作为参考,同时,我提出了一个用于infiniteFlux()的流解决方案:
@Test
public void infiniteFluxWithStream() {
Stream<Integer> infiniteStream = Stream.iterate(0, i -> i+1).peek(x->{
LocalDateTime t = LocalDateTime.now();
t.format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"));
System.out.println(t);
});
infiniteStream.forEach(x->{
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}); }
这确实很丑陋。然而,它表明,在(非常)原则上,可以根据流重写简单的Flux示例。
https://stackoverflow.com/questions/52820232
复制相似问题