一、描述
toMultiMap类似于toMap,不同的是,它生成的这个Map同时还是一个ArrayList(默认是这样,你可以传递一个可选的工厂方法修改这个行为)。
toMultiMap默认不在任何特定的调度器上执行。
二、示意图
三、示例代码
1 | class Student { |
四、运行结果
1 | onNext: onNext: {1002=[Student{id=1002, name='LiSi'}], 1001=[Student{id=1001, name='ZhangSan'}]} |
toMap(Func1)将原Observable发送的数据保存到一个MAP中,并在参数函数中,设定sutdent的id属性作为key。但toMultimap操作符在将数据保存到MAP前,先将数据保存到Collection,而toMap操作符将数据直接保存到MAP中,并没有再包裹一层
Collection。
五、更多
toMultimap操作符还有以下变体:
- toMultiMap(Func1)
- toMultiMap(Func1,Func1)
- toMultiMap(Func1,Func1,Func0)
- toMultiMap(Func1,Func1,Func0,Func1)
详情可查阅下面的参考资料。
六、参考资料
PS:欢迎关注 SherlockShi 个人博客