Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Swift Package Manager
- ios
- pod install
- Android
- url 추적
- 상단 탭바
- UIViewControllerTransitioningDelegate
- DataBinding
- notifychanged
- scrolling tab
- transformation.map
- oberve url
- swift #swift keychain #keychain 사용법
- Side Menu
- base64 변환
- DevelopmentRegion
- SwiftUI
- development language
- 개발자 면접
- swift
- Tuist
- 기존 앱
- List
- detect url
- 스크롤 탭
- UIPresentationController
- convert base64
- url 관찰
- ViewBuilder
- GeometryReader
Archives
- Today
- Total
버그 잡이
[RxJava] Filter Operator - filter(), distinct(), take(), takeWhile() 본문
모던 안드로이드/RxJava
[RxJava] Filter Operator - filter(), distinct(), take(), takeWhile()
버그잡이 2020. 5. 1. 13:44
(위 블로그 내용을 복습차 정리했습니다.)
Filter Operator는 이름 그대로 특정 조건으로 거르는 operator이다.
observable 중에서 내가 지정한 조건을 통과하는 item만 가져온다.
특징으로 선별작업은 backgroun thread에서 이루어진다. -> UI에 영향 X
.filter()
원하는 조건에 맞는 item만 가져온다.
.filter(new Predicate<Task>() {
@Override
public boolean test(Task task) throws Exception {
return task.isComplete();
}
})
.distinct()
중복값을 제외하고 가져온다. (약간 set 느낌이 난다.)
.distinct(new Function<Task, String>() { // <--- CORRECT
@Override
public String apply(Task task) throws Exception {
return task.getDescription();
}
})
- 기억할 것은 return type을 String으로 하는 점이다. ( <Task, Task>로 하면 실행되지 않는다. )
- 추측이지만 반환값을 설정함과 동시에 비교할 항목을 정하는 것 같다.
.take()
원하는 갯수만큼만 가져온다.
Observable<Task> taskObservable = Observable
.fromIterable(DataSource.createTasksList())
.take(3)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
.takeWhile()
특정 조건이 false되기 이전까지만 가져온다.
Observable<Task> taskObservable = Observable
.fromIterable(DataSource.createTasksList())
.takeWhile(new Predicate<Task>() {
@Override
public boolean test(Task task) throws Exception {
return task.isComplete();
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
반응형
'모던 안드로이드 > RxJava' 카테고리의 다른 글
[RxJava] EditText + Debounce 로 검색창 만들기 #코틀린 (0) | 2020.05.04 |
---|---|
[RxJava] Operator란 무엇인가? #create #fromIterater() #fromCallable() #fromPublisher() (0) | 2020.04.29 |
[RxJava] RxJava 기초 용어 정리 #Flowable #Disposable #RxJava vs RxAndroid (0) | 2020.04.28 |
[RxJava] 리액티브 프로그래밍이란? RxJava란? (0) | 2020.04.27 |
Comments