【问题标题】:Kotlin: How to Output at a time the ArrayList from RxjavaKotlin:如何从 Rxjava 一次输出 ArrayList
【发布时间】:2020-01-23 09:14:08
【问题描述】:

我想在 ArrayList 的时候打印。

之前:

class ExampleUnitTest {
    @Test
    fun test(){
        val stringArray = arrayOf("10", "20", "30", "40", "30", "20", "10", "5", "20", "30", "20", "30").map { it }
        println(stringArray.toString())
    }
}

# output is :
[10, 20, 30, 40, 30, 20, 10, 5, 20, 30, 20, 30]

之后:

# I Want to output Like this :
10, 20, 30, 40, 30, 20, 10, 5, 20, 30, 20, 30

如何通过 Reactivex Java(RxJava) 进行这种编码

# something like... e.g..
Observable ...{
   ... ...
}.subscribeOn(Schedulers.io())
.subscribe({
   ... ...
})

【问题讨论】:

  • Observable.just(someList) 会给你 1 个发射 - 一个列表

标签: java android kotlin rx-java rx-kotlin


【解决方案1】:

我自己解决了这个问题!

val sample = listOf("a","b","c","d","e","f","g")
        Observable.fromIterable(sample.withIndex())
            .subscribeOn(Schedulers.io())
            .subscribe({ (index, item) ->
                print(if(sample.size > index) item else "$item, ")
                println()
            },
            { e -> e.printStackTrace() },
            { println("finished!") }
        )

【讨论】:

    【解决方案2】:

    您可以使用 fromArray 运算符和一些字符串内置函数

          val stringArray = arrayOf("10", "20", "30", "40", "30", "20", "10", "5", "20", "30", "20", "30")
    
            Observable.fromArray(stringArray).map {
                Arrays.toString(it).replace("[","").replace("]","")
            } .subscribe(
                {
    //               Desired OP: 10, 20, 30, 40, 30, 20, 10, 5, 20, 30, 20, 30
                    Log.d("test"," $it")
                }
            )
    

    【讨论】:

      猜你喜欢
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 2013-08-12
      相关资源
      最近更新 更多