RxJava—转换操作符

本文详细介绍了RxJava中的转换操作符,包括Map、FlatMap、ConcatMap、FlatMapIterable、SwitchMap、Scan和GroupBy。Map用于转换Observable发射的值,FlatMap将值转换为Observable并合并结果,ConcatMap保证数据顺序,FlatMapIterable转换为可迭代对象,SwitchMap在源数据变化时取消订阅旧的Observable,Scan对序列应用函数并发射结果,GroupBy根据key拆分数据。
摘要由CSDN通过智能技术生成

1.前言

       在前面的一篇文章中介绍了RxJava创建操作符的用法,如果对创建操作符不是很清楚的话建议去看看RxJava—创建操作符。在本章会开始聊聊RxJava中的转换操作符(Operators),转换操作符是为了解决对Observable对象的变换的问题,操作符用于在Observable和最终的Subscriber之间修改Observable发出的事件,RxJava中给我们提供了很多有用的操作符,在本章的内容中主要介绍转换操作符,常见的转换操作符有:Map()、FlatMap()、ConcatMap()、FlatMapIterable()、SwitchMap()、Scan()、GroupBy()等。

       在本章的内容中主要介绍转换操作符,所有的这些操作符都是作用于一个可观测序列,然后变换它的发射值,最后用一种新的形式返回他们。

2.转换操作符的使用

(1)Map

       map()函数接收一个Func1类型的参数(map(Func1<? super T, ? extends R> func)),然后把这个Func1应用到每一个Observable发射的值上,将发射值转换为我们所期望的值。(PS:Func1跟在RxJava—入门介绍中所提到的ActionX是相似的,都是实现不完整定义的回调,ActionX或者FuncX后面的X指的是传入的参数个数,只不过ActionX是没有返回值的,而FuncX是有返回值的)。

       根据官方给出的原理图:

       

       如果我们需要将一组数据转换称为字符串,我们就可以通过map这样实现:

mapButton.setOnClickListener(new View.OnClickListener()
{
    public void onClick(View view)
    {
        Observable.just(1, 2, 3, 4, 5)
                .map(new Func1<Integer, String>()
                {
                    public String call(Integer integer)
                    {
                        return "This is" + integer;
                    }
                })
                .subscribe(new Action1<String>()
                {
                    pub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值