#36 rxjava: 데이터 변환 - toList, toMap

This commit is contained in:
haerong22
2023-07-05 23:44:30 +09:00
parent 8db3256035
commit de2e071cc0
4 changed files with 81 additions and 0 deletions

View File

@@ -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<List<Integer>> single = Observable.just(1, 3, 5, 7, 9)
.toList();
single.subscribe(data -> Logger.log(LogType.ON_NEXT, data));
}
}

View File

@@ -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));
}
}

View File

@@ -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<Map<String, String>> 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));
}
}

View File

@@ -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<Map<String, String>> 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));
}
}