본문 바로가기
Rx

Observable -5 (fromArray함수)

by 봄석 2018. 12. 23.

본 내용은 필자가 학습한 내용을 정리하는 내용입니다.

대부분 의 내용이 아래 책의 내용이므로 원서를 구매해서 직접보시는걸 추천드립니다!

RxJava 프로그래밍 리액티브 프로그래밍 기초부터 RxAndroid까지 한 번에

유동환 , 박정준 지음 | 한빛미디어 | 2017년 09월 04일 출간


http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788968488658&orderClick=LAV&Kc=

 Observable의 팩토리 함수 구분

팩토리함수 

함수 

RxJava 1.x의 기본 팩토리 함수 

create(),just(),from() 

RxJava 2.x의 기본 팩토리 함수  

fromArray(),fromlterable(),fromCallable(),fromFuture(),

fromPublisher() 

기타 팩토리 함수 

interval(),range(),timer(),defer() 




fromArray()함수

just()나 create()는 단일 데이터를 다룹니다. 그렇다면 단일 데이터가 아닐 때는 어떻게 ?

fromXXXX() 계열 함수를 허용해야합니다


fromArray함수 사용 예시

Integer[] arr={100,200,300};
Observable<Integer> source =Observable.fromArray(arr);
source.subscribe(System.out::println);


int[]배열을 사용해 명시적인 래퍼타입인 Integer[]로 코딩하지 않을때


import java.util.stream.IntStream; import io.reactivex.Observable;
 
public class ObservableFromArray {
 
private static Integer[] toIntegerArray(int[] intArray) { 
        return IntStream.of(intArray).boxed().toArray(Integer[]::new);
    }
 
public static void main(String args[]){
        int[] intArray={400,500,600};
        Observable<Integer> source = Observable.fromArray(toIntegerArray(intArray));
        source.subscribe(System.out::println);
    }
}


RxJava에서 int배열을 인식시키려면 Integer[]로 변환해야합니다

자바 8의 Stream API에서는 다음과 같은 방법을 제공합니다


private static Integer[] toIntegerArray(int[] intArray) { 
        return IntStream.of(intArray).boxed().toArray(Integer[]::new);
}




toIntegerArray()함수안 boxed()메서드는 int[] 배열 각각 요소를 Integer로 변환해 Integer[] 배열의스트림으로 만듭니다


toArray()메소드는 이런 스트림을 Integer[]배열로 만들어줍니다


int[]와 Integer[]의 차이 - http://includestdio.tistory.com/1

댓글