- Learning RxJava
- Thomas Nield
- 203字
- 2021-07-02 22:22:58
map()
For a given Observable<T>, the map() operator will transform a T emission into an R emission using the provided Function<T,R> lambda. We have already used this operator many times, turning strings into lengths. Here is a new example: we can take raw date strings and use the map() operator to turn each one into a LocalDate emission, as shown in the following code snippet:
import io.reactivex.Observable;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Launcher {
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("M/d
/yyyy");
Observable.just("1/3/2016", "5/9/2016", "10/12/2016")
.map(s -> LocalDate.parse(s, dtf))
.subscribe(i -> System.out.println("RECEIVED: " + i));
}
}
The output of the preceding code snippet is as follows:
RECEIVED: 2016-01-03
RECEIVED: 2016-05-09
RECEIVED: 2016-10-12
We passed a lambda that turns each string into a LocalDate object. We created a DateTimeFormatter in advance in order to assist with the LocalDate.parse() operation, which returns a LocalDate. In turn, we pushed each LocalDate emission to our Observer to be printed.
The map() operator does a one-to-one conversion for each emission. If you need to do a one-to-many conversion (turn one emission into several emissions), you will likely want to use flatMap() or concatMap(), which we will cover in the next chapter.
- DevOps入門與實踐
- 機器人Python青少年編程開發(fā)實例
- React.js Essentials
- Implementing Cisco Networking Solutions
- Building Mapping Applications with QGIS
- Java深入解析:透析Java本質(zhì)的36個話題
- INSTANT Passbook App Development for iOS How-to
- Mastering Xamarin.Forms(Second Edition)
- 一塊面包板玩轉(zhuǎn)Arduino編程
- Mastering Web Application Development with AngularJS
- Java零基礎(chǔ)實戰(zhàn)
- Scratch3.0趣味編程動手玩:比賽訓(xùn)練營
- 響應(yīng)式Web設(shè)計:HTML5和CSS3實戰(zhàn)(第2版)
- 精通Spring:Java Web開發(fā)與Spring Boot高級功能
- Android高級開發(fā)實戰(zhàn):UI、NDK與安全