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分钟视频学习

Reactor系列(九)collect集合的更多相关文章
- Reactor系列(十)collectMap集合
#java#reactor#collect#hashMap# 转换成Map 视频讲解: https://www.bilibili.com/video/av80048104/ FluxMonoTestC ...
- Python操作redis学习系列之(集合)set,redis set详解 (六)
# -*- coding: utf-8 -*- import redis r = redis.Redis(host=") 1. Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合 ...
- java基础解析系列(九)---String不可变性分析
java基础解析系列(九)---String不可变性分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---In ...
- java多线程系列(九)---ArrayBlockingQueue源码分析
java多线程系列(九)---ArrayBlockingQueue源码分析 目录 认识cpu.核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二)之对象变量的并发访问 j ...
- 分布式系列九: kafka
分布式系列九: kafka概念 官网上的介绍是kafka是apache的一种分布式流处理平台. 最初由Linkedin开发, 使用Scala编写. 具有高性能,高吞吐量的特定. 包含三个关键能力: 发 ...
- lodash用法系列(1),数组集合操作
Lodash用来操作对象和集合,比Underscore拥有更多的功能和更好的性能. 官网:https://lodash.com/引用:<script src="//cdnjs.clou ...
- information_schema系列九
information_schema系列九 1:INNODB_SYS_FOREIGN 这个表存储的是INNODB关于外键的元数据信息 Column name Description ID 外键的名 ...
- struts2官方 中文教程 系列九:Debugging Struts
介绍 在Struts 2 web应用程序的开发过程中,您可能希望查看由Struts 2框架管理的信息.本教程将介绍两种工具,您可以使用它们来查看.一个工具是Struts 2的配置插件,另一个是调试拦截 ...
- Bing Maps进阶系列九:使用MapCruncher进行地图切片并集成进Bing Maps
Bing Maps进阶系列九:使用MapCruncher进行地图切片并集成进Bing Maps 在Bing Maps开发中,由于各种应用功能的不同,更多的时候用户可能需要将自己的一部分图片数据作为地图 ...
随机推荐
- jquery 下载
jquery下载所有版本(实时更新) 摘自:http://www.jq22.com/jquery-info122 插件描述:jquery下载,实时更新jquery1.2到最新3.2.1所有版本下载 j ...
- //点击按钮加减音频音量到最小会出现bug什么意思???
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 10 | MySQL为什么有时候会选错索引?
前面我们介绍过索引,你已经知道了在MySQL中一张表其实是可以支持多个索引的.但是,你写SQL语句的时候,并没有主动指定使用哪个索引.也就是说,使用哪个索引是由MySQL来确定的. 不知道你有没有碰到 ...
- Oracle 三种连接方式 NESTED LOOP HASH JOIN SORT MERGE JOIN
NESTED LOOP: 对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择.在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行,因此整个查询返回的结果集不能太大( ...
- 五十.KVM简介、 Virsh管理 、 自定义虚拟机、虚拟设备管理
1.virsh基本管理操作 列出当前正在运行的虚拟机 查看虚拟机的信息 管理虚拟机 设置虚拟机开机自动运行 1.1 virsh基本操作 查看kvm节点(服务器)信息 ] virsh nodei ...
- mkswap/swapon/swapoff/free
free mkswap 创建Linux交换分区 swapon 启用交换分区 swapoff 关闭交换分区 注意: 在创建完交换区之后.是需要激活才能使用的 swapon/swapoff
- 前端逼死强迫症系列之javascript
JavaScript 和Python.C#.Java.Ruby一样,都是一门独立的编程语言. 像python.C.Java等都需要解释器,学习它们的语法.而浏览器本身就是javascript的解释器. ...
- delphi nethttpclient操作cookie
delphi nethttpclient操作cookie unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysU ...
- .NET笔记题库(一)
1 (1)面向对象的语言具有__继承性_性._封装性_性._多态性 性. (2)能用foreach遍历访问的对象需要实现 _ IEnumerable 接口或声明_ GetEnumerator 方法的类 ...
- 图解Python 【第十二篇】:Django 基础
本节内容一览表: Django基础:http://www.ziqiangxuetang.com/django/django-tutorial.html 一.Django简介 Django文件介绍:ht ...