【webFlux】五个例子理解Flux与Mono的collectList()方法的使用

WebFlux 是一个响应式编程框架,它提供了一个基于反应式流的编程模型,可以使您编写高效、可扩展的异步代码。在 WebFlux 中,collectList() 是一个常用的操作符,它可以将流元素收集到一个列表中。下面是 collectList() 的几个用法示例:

  1. 收集 Flux 元素到列表中:
Flux<Integer> flux = Flux.just(1, 2, 3, 4, 5);
flux.collectList().subscribe(list -> System.out.println(list));

在此示例中,我们创建了一个包含整数元素的 Flux,然后使用 collectList() 操作符将所有元素收集到一个列表中。最后,我们使用 subscribe() 方法订阅这个列表并打印它。

  1. 将 Mono 元素收集到列表中:
Mono<Integer> mono = Mono.just(1);
mono.collectList().subscribe(list -> System.out.println(list));

在此示例中,我们创建了一个包含一个整数元素的 Mono,然后使用 collectList() 操作符将该元素收集到一个列表中。最后,我们使用 subscribe() 方法订阅这个列表并打印它。

  1. 收集 Flux 元素到自定义集合中:
Flux<Integer> flux = Flux.just(1, 2, 3, 4, 5);
flux.collectList(ArrayList::new).subscribe(list -> System.out.println(list));

在此示例中,我们创建了一个包含整数元素的 Flux,然后使用 collectList() 操作符将所有元素收集到一个自定义的 ArrayList 集合中。最后,我们使用 subscribe() 方法订阅这个列表并打印它。

  1. 收集 Flux 元素到列表中,并对列表进行排序:
Flux<Integer> flux = Flux.just(5, 1, 4, 2, 3);
flux.collectList().map(list -> {
    Collections.sort(list);
    return list;
}).subscribe(list -> System.out.println(list));

在此示例中,我们创建了一个包含整数元素的 Flux,然后使用 collectList() 操作符将所有元素收集到一个列表中。接下来,我们使用 map() 操作符对列表进行排序,并最终使用 subscribe() 方法订阅这个列表并打印它。

  1. 收集 Flux 元素到列表中,并计算列表元素的总和:
Flux<Integer> flux = Flux.just(1, 2, 3, 4, 5);
flux.collectList().map(list -> list.stream().mapToInt(Integer::intValue).sum()).subscribe(sum -> System.out.println(sum));

在此示例中,我们创建了一个包含整数元素的 Flux,然后使用 collectList() 操作符将所有元素收集到一个列表中。接下来,我们使用 map() 操作符将列表元素转换为整数,并计算它们的总和。最终,我们使用 subscribe() 方法订阅这个总和并打印它。

你可能感兴趣的:(webFlux,java,算法,数据结构,webFlux,collectList)