diff --git a/RxJava/practice/src/main/java/org/example/ex11/ObservableToListEx01.java b/RxJava/practice/src/main/java/org/example/ex11/ObservableToListEx01.java new file mode 100644 index 00000000..1eb16dca --- /dev/null +++ b/RxJava/practice/src/main/java/org/example/ex11/ObservableToListEx01.java @@ -0,0 +1,20 @@ +package org.example.ex11; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import org.example.utils.LogType; +import org.example.utils.Logger; + +import java.util.List; + +/** + * 각각의 통지 데이터를 List로 변환해서 Single로 한번만 통지하는 예제 + */ +public class ObservableToListEx01 { + public static void main(String[] args) { + Single> single = Observable.just(1, 3, 5, 7, 9) + .toList(); + + single.subscribe(data -> Logger.log(LogType.ON_NEXT, data)); + } +} \ No newline at end of file diff --git a/RxJava/practice/src/main/java/org/example/ex11/ObservableToListEx02.java b/RxJava/practice/src/main/java/org/example/ex11/ObservableToListEx02.java new file mode 100644 index 00000000..ae4cf08b --- /dev/null +++ b/RxJava/practice/src/main/java/org/example/ex11/ObservableToListEx02.java @@ -0,0 +1,17 @@ +package org.example.ex11; + +import io.reactivex.rxjava3.core.Observable; +import org.example.common.SampleData; +import org.example.utils.LogType; +import org.example.utils.Logger; + +/** + * 각각의 통지될 Car 객체를 List로 변환해서 Single로 한번만 통지하는 예제 + */ +public class ObservableToListEx02 { + public static void main(String[] args) { + Observable.fromIterable(SampleData.carList) + .toList() + .subscribe(carList -> Logger.log(LogType.ON_NEXT, carList)); + } +} \ No newline at end of file diff --git a/RxJava/practice/src/main/java/org/example/ex11/ObservableToMapExample01.java b/RxJava/practice/src/main/java/org/example/ex11/ObservableToMapExample01.java new file mode 100644 index 00000000..7f2451dc --- /dev/null +++ b/RxJava/practice/src/main/java/org/example/ex11/ObservableToMapExample01.java @@ -0,0 +1,21 @@ +package org.example.ex11; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import org.example.utils.LogType; +import org.example.utils.Logger; + +import java.util.Map; + +/** + * 통지된 데이터에서 map의 키를 생성한 후, 각각의 키별로 원본 통지 데이터를 매핑해서 Map으로 반환하는 예제 + */ +public class ObservableToMapExample01 { + public static void main(String[] args) { + Single> single = + Observable.just("a-Alpha", "b-Bravo", "c-Charlie", "e-Echo") + .toMap(data -> data.split("-")[0]); // 반환값은 Map의 key가 된다. + + single.subscribe(map -> Logger.log(LogType.ON_NEXT, map)); + } +} \ No newline at end of file diff --git a/RxJava/practice/src/main/java/org/example/ex11/ObservableToMapExample02.java b/RxJava/practice/src/main/java/org/example/ex11/ObservableToMapExample02.java new file mode 100644 index 00000000..43d5f87b --- /dev/null +++ b/RxJava/practice/src/main/java/org/example/ex11/ObservableToMapExample02.java @@ -0,0 +1,23 @@ +package org.example.ex11; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import org.example.utils.LogType; +import org.example.utils.Logger; + +import java.util.Map; + +/** + * 원본 데이터를 변환한 값과 각각의 key를 매핑하여 Map으로 통지하는 예제 + */ +public class ObservableToMapExample02 { + public static void main(String[] args) { + Single> single = Observable.just("a-Alpha", "b-Bravo", "c-Charlie", "e-Echo") + .toMap( + data -> data.split("-")[0], + data -> data.split("-")[1] + ); + + single.subscribe(map -> Logger.log(LogType.ON_NEXT, map)); + } +} \ No newline at end of file