Reactor系列(九)collect集合

#java#reactor#collect#collectMap#collectList#

集合

视频讲解: https://www.bilibili.com/video/av79860614/

FluxMonoTestCase.java
package com.example.reactor;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.util.Comparator;
import java.util.List;
import java.util.Map;

@Slf4j
public class FluxMonoTestCase extends BaseTestCase {
    @Test
    public void collect(){
        Flux<Integer> integerFlux = Flux.range(1,5);
        //转换成以List<Integer>为对象的Mono
        Mono<List<Integer>> mono = integerFlux.collectList();
        mono.subscribe(System.out::println);
        Flux<Employee> employeeFlux = Flux.fromIterable(list);
        //转换成以List<Employee>为对象的Mono
        Mono<List<Employee>> mono1 = employeeFlux.collectSortedList(Comparator.comparing(Employee::getSalary));
        mono1.subscribe(System.out::println);
        //转换成以Map<String,Employee>为对象的Mono
        Mono<Map<String,Employee>> mono2 = employeeFlux.collectMap(item ->item.getName(), item ->item);
        mono2.subscribe(System.out::println);
    }
}
BaseTestCase.java
package com.example.reactor;

import java.util.Arrays;
import java.util.List;

public class BaseTestCase {
    protected static final List<Employee> list = Arrays.asList(
            new Employee(1, "Alex", 1000),
            new Employee(2, "Michael", 2000),
            new Employee(3, "Jack", 1500),
            new Employee(4, "Owen", 1500),
            new Employee(5, "Denny", 2000));
}

结果:

[1, 2, 3, 4, 5]
[Employee(id=1, name=Alex, salary=1000.0), Employee(id=3, name=Jack, salary=1500.0), Employee(id=4, name=Owen, salary=1500.0), Employee(id=2, name=Michael, salary=2000.0), Employee(id=5, name=Denny, salary=2000.0)]
{Alex=Employee(id=1, name=Alex, salary=1000.0), Owen=Employee(id=4, name=Owen, salary=1500.0), Denny=Employee(id=5, name=Denny, salary=2000.0), Michael=Employee(id=2, name=Michael, salary=2000.0), Jack=Employee(id=3, name=Jack, salary=1500.0)}

关注公众号,坚持每天3分钟视频学习

原文地址:https://www.cnblogs.com/JavaWeiBianCheng/p/12069828.html

时间: 2024-11-15 12:52:38

Reactor系列(九)collect集合的相关文章

Reactor系列(十)collectMap集合

#java#reactor#collect#hashMap# 转换成Map 视频讲解: https://www.bilibili.com/video/av80048104/ FluxMonoTestCase.java package com.example.reactor; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import reactor.core.publisher.Flux; import

struts2官方 中文教程 系列九:Debugging Struts

介绍 在Struts 2 web应用程序的开发过程中,您可能希望查看由Struts 2框架管理的信息.本教程将介绍两种工具,您可以使用它们来查看.一个工具是Struts 2的配置插件,另一个是调试拦截器.本文还讨论了如何设置日志级别以查看更多或更少的日志消息. 贴个本帖的地址,以免被爬:struts2官方 中文教程 系列九:Debugging Struts 即 http://www.cnblogs.com/linghaoxinpian/p/6916619.html 下载本章节代码 Configu

ip欺骗(原始套接字系列九)

由于使用Raw Socket的时候,IP报头可完全由程序员自定义,所以我们可以任意地修改本地发送包的IP地址,使得接收方错误的认为IP报文是由欺骗地址发出的. 下面的程序演示了向某目标发送IP地址伪装的UDP报文的过程: void sendPesuoIpUDP(void){ WSADATA wsd; if (WSAStartup(MAKEWORD(2, 2), &wsd) != 0) { printf("WSAStartup() failed: %d ", GetLastErr

SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据

转自:http://www.cnblogs.com/beniao/archive/2011/03/22/1989310.html 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC规范.KML规范)的

C语言快速入门系列(九)

C语言快速入门系列(九)                                               ---转载请注明出处:coder-pig C语言知识点拾遗 本节引言: C语言系列已经接近尾声了,在前面八节的学习中,我们学会了C的基本语法,基本数据类型, 三种程序结构(顺序,判断,循环),数组,函数,指针,结构体,共用体,位运算,文件等内容, 本节将对前面没有讲的C的遗漏知识点进行补充,当然发现有那些的遗漏的知识点也会进行更新! 谢谢大家一直以来的支持,说了这么多的理论,缺的

JBoss 系列九十七:JBoss MSC - 浅析 ServiceName

概述 JBoss MSC 是WildFly 8 和 JBoss 7的底层容器.它管理 JBoss 中的所有 Service,JBoss 中的每一个Service都有一个名字,JBoss MSC通过 ServiceName 对象来抽象Service的名字,ServiceName 代吗链接:ServiceName.java,类图如下: 树状结构 WildFly 中的一切都是一个Service,每个 Service 都有一个名字,Service 之间有树形关系,所以 ServiceName 也是树状结

Exchange Server2013 系列九:常规配置

Exchange Server2013 系列九:常规配置(一) 杜飞 经过前面的部署之后,我们的客户端访问角色和邮箱服务器角色都已经实现了高可用,但目前还不能正常使用,需要对服务器进行常规的配置,主要包括以下工作: 1. 输入产品密钥 2.创建发送连接器 3.添加其他接受域及配置默认电子邮件地址策略 4.配置外部URL 5.配置内部URL 6.配置SSL证书 下面,就逐项来操作吧: 1.输入产品密钥: 安装 Exchange 2013 时,服务器默认许可为试用版.试用版在自安装之日起的 180

火星时代系列所有视频教程集合

课程简介:火星时代系列所有教程集合[ps cad Mental Ray Ae 3D maya](6 , 0 files, 0 bytes, 106.16 GB 火星3Dmax全集 (149 , 0 files, 0 bytes, 33.71 3ds Max 蒙皮系统详解 , 8 files, 100.50 MB, 100.50 MB 0001.火星视频教育-3ds Max8_加入蒙皮修改器.flv 8.26 MB0002.火星视频教育-3ds Max8_编辑封套.flv 16.79 MB0003

Reactor系列(十九)StepVerifier测试

#java#reactor#flux#StepVerifier# 测试 视频讲解: https://www.bilibili.com/video/av81866573/ FluxMonoTestCase.java package com.example.reactor; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import reactor.core.publisher.Flux; import re