<RxJava>Last

진섭·2023년 5월 29일
0

RxJava

목록 보기
10/20
post-thumbnail

📌 Last 연산자란?

Observable에서 발행된 마지막 항목을 발행한다. Last 연산자는 Observable이 최소한 한 개 이상의 항목을 발행하는 것이 보장될 때 사용하는 것이 좋다.

📌 Last 사용법

이 예제는 newJeansList에서 마지막 요소를 보여주는 예제입니다. 코드를 살펴보면 newJeansList라는 리스트를 Observable.fromIterable() 메서드를 사용하여 요소들을 하나씩 발행하는 Observable을 생성하여 반환합니다.
이제 MainActivity에서 호출을 하여 last( NewJeans(1,"민지",20))로 기본값을 주어 최소한 한 개 이상을 발행하는 것을 만족하게 해주면 리스트가 비어있을 때 NewJeans(1,"민지",20)가 발행됩니다. 아니면 .lastElement() 사용해 아무것도 발행이 안 되게 할 수 있습니다.

class MainActivity : AppCompatActivity() {
    companion object {
        const val TAG = "MainActivity"
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        last()
            .last( NewJeans(1,"민지",20)) // 기본값을 주는 방법
    //      .lastElement() // 기본값을 주지 않는 방법
            .subscribe(
                {
                    Log.d("last", "onNext : $it")

                },
                {
                    Log.d("last", "onError ${it}")
                }
            ).let { _ -> }

    }
}

fun last():Observable<NewJeans> {
    return Observable.fromIterable(newJeansList)
}

val newJeansList= mutableListOf<NewJeans>(
    NewJeans(1,"민지",20),
    NewJeans(2,"하니",20),
    NewJeans(3,"다니엘",19),
    NewJeans(4,"해린",18),
    NewJeans(5,"혜인",16),
)

data class NewJeans
(
    val id: Long,
    val name: String,
    val age: Int
)

실행결과

profile
Android 개발자

0개의 댓글