diff --git a/RxJava/practice/src/main/java/org/example/ex01/DeclarativePrograming.java b/RxJava/practice/src/main/java/org/example/ex01/DeclarativePrograming.java new file mode 100644 index 00000000..aa1d9665 --- /dev/null +++ b/RxJava/practice/src/main/java/org/example/ex01/DeclarativePrograming.java @@ -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 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); + } +} \ No newline at end of file diff --git a/RxJava/practice/src/main/java/org/example/ex01/ImperativeProgramming.java b/RxJava/practice/src/main/java/org/example/ex01/ImperativeProgramming.java new file mode 100644 index 00000000..f3758657 --- /dev/null +++ b/RxJava/practice/src/main/java/org/example/ex01/ImperativeProgramming.java @@ -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 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); + } +} \ No newline at end of file diff --git a/RxJava/practice/src/main/java/org/example/ex01/ReactiveProgramming.java b/RxJava/practice/src/main/java/org/example/ex01/ReactiveProgramming.java new file mode 100644 index 00000000..2d6baae3 --- /dev/null +++ b/RxJava/practice/src/main/java/org/example/ex01/ReactiveProgramming.java @@ -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); + } +}