#36 rxjava: basic

This commit is contained in:
haerong22
2023-04-14 02:53:37 +09:00
parent d125ae2959
commit 4e152aab04
3 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
package org.example.ex01;
import java.util.Arrays;
import java.util.List;
public class DeclarativePrograming {
public static void main(String[] args){
// List에 있는 숫자들 중에서 6보다 큰 홀수들의 합계를 구하세요.
List<Integer> numbers = Arrays.asList(1, 3, 21, 10, 8, 11);
int sum = numbers.stream()
.filter(number -> number > 6 && (number % 2 != 0))
.mapToInt(number -> number)
.sum();
System.out.println("# 선언형 프로그래밍 사용: " + sum);
}
}

View File

@@ -0,0 +1,21 @@
package org.example.ex01;
import java.util.Arrays;
import java.util.List;
public class ImperativeProgramming {
public static void main(String[] args){
// List에 있는 숫자들 중에서 6보다 큰 홀수들의 합계를 구하세요.
List<Integer> numbers = Arrays.asList(1, 3, 21, 10, 8, 11);
int sum = 0;
for(int number : numbers){
if(number > 6 && (number % 2 != 0)){
sum += number;
}
}
System.out.println("# 명령형 프로그래밍 사용: " + sum);
}
}

View File

@@ -0,0 +1,18 @@
package org.example.ex01;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.schedulers.Schedulers;
public class ReactiveProgramming {
public static void main(String[] args) throws InterruptedException {
Observable.just(100, 200, 300, 400, 500)
.doOnNext(data -> System.out.println(Thread.currentThread().getName() + " : #doOnNext() : " + data))
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.computation())
.filter(number -> number > 300)
.subscribe(num -> System.out.println(Thread.currentThread().getName() + " : result : " + num));
Thread.sleep(500);
}
}