From de2e071cc0f65c3d445521fd2624c08e5ac19be5 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Wed, 5 Jul 2023 23:44:30 +0900 Subject: [PATCH] =?UTF-8?q?#36=20rxjava:=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20?= =?UTF-8?q?=EB=B3=80=ED=99=98=20-=20toList,=20toMap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/ex11/ObservableToListEx01.java | 20 ++++++++++++++++ .../example/ex11/ObservableToListEx02.java | 17 ++++++++++++++ .../ex11/ObservableToMapExample01.java | 21 +++++++++++++++++ .../ex11/ObservableToMapExample02.java | 23 +++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 RxJava/practice/src/main/java/org/example/ex11/ObservableToListEx01.java create mode 100644 RxJava/practice/src/main/java/org/example/ex11/ObservableToListEx02.java create mode 100644 RxJava/practice/src/main/java/org/example/ex11/ObservableToMapExample01.java create mode 100644 RxJava/practice/src/main/java/org/example/ex11/ObservableToMapExample02.java 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