rxjava : stream
This commit is contained in:
16
RxJava/basic/src/_03_stream/StreamEx_06.java
Normal file
16
RxJava/basic/src/_03_stream/StreamEx_06.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package _03_stream;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class StreamEx_06 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
List<Dish> vegetarianMenu = Dish.menu.stream()
|
||||
.filter(Dish::isVegetarian)
|
||||
.toList();
|
||||
|
||||
System.out.println("vegetarianMenu = " + vegetarianMenu);
|
||||
|
||||
}
|
||||
}
|
||||
18
RxJava/basic/src/_03_stream/StreamEx_07.java
Normal file
18
RxJava/basic/src/_03_stream/StreamEx_07.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package _03_stream;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class StreamEx_07 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// distinct -> hashCode, equals 로 결정
|
||||
List<Integer> list = Arrays.asList(1, 2, 1, 3, 3, 2, 4);
|
||||
|
||||
list.stream()
|
||||
.filter(i -> i % 2 == 0)
|
||||
.distinct()
|
||||
.forEach(System.out::println);
|
||||
}
|
||||
}
|
||||
17
RxJava/basic/src/_03_stream/StreamEx_08.java
Normal file
17
RxJava/basic/src/_03_stream/StreamEx_08.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package _03_stream;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class StreamEx_08 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// skip(n) n번째 요소 이후의 요소만 선택, 없으면 빈배열
|
||||
List<Dish> dishes = Dish.menu.stream()
|
||||
.filter(dish -> dish.getCalories() > 300)
|
||||
.skip(2)
|
||||
.toList();
|
||||
|
||||
System.out.println("dishes = " + dishes);
|
||||
}
|
||||
}
|
||||
29
RxJava/basic/src/_03_stream/StreamEx_09.java
Normal file
29
RxJava/basic/src/_03_stream/StreamEx_09.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package _03_stream;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class StreamEx_09 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// map -> 다른 타입으로 변환
|
||||
List<Integer> result = Dish.menu.stream()
|
||||
.map(Dish::getName)// Dish -> String
|
||||
.map(String::length)// String -> Integer
|
||||
.toList();
|
||||
|
||||
System.out.println("result = " + result);
|
||||
|
||||
// flatMap
|
||||
List<String> words = Arrays.asList("Hello", "world");
|
||||
|
||||
List<String> uniqueCharacter = words.stream()
|
||||
.map(word -> word.split("")) // String -> String[] 이 되므로 Stream<String[]>
|
||||
.flatMap(Arrays::stream) // Stream<String>
|
||||
.distinct()
|
||||
.toList();
|
||||
|
||||
System.out.println("uniqueCharacter = " + uniqueCharacter);
|
||||
}
|
||||
}
|
||||
35
RxJava/basic/src/_03_stream/StreamEx_10.java
Normal file
35
RxJava/basic/src/_03_stream/StreamEx_10.java
Normal file
@@ -0,0 +1,35 @@
|
||||
package _03_stream;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class StreamEx_10 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
if (isVegetarianFriendlyMenu()) {
|
||||
System.out.println("Vegetarian friendly");
|
||||
}
|
||||
|
||||
System.out.println(isHealthyMenu());
|
||||
System.out.println(isHealthyMenu2());
|
||||
|
||||
findVegetarianDish()
|
||||
.ifPresent(dish -> System.out.println(dish.getName()));
|
||||
}
|
||||
|
||||
private static Optional<Dish> findVegetarianDish() {
|
||||
return Dish.menu.stream().filter(Dish::isVegetarian).findAny();
|
||||
}
|
||||
|
||||
private static boolean isHealthyMenu2() {
|
||||
return Dish.menu.stream().noneMatch(dish -> dish.getCalories() >= 1000);
|
||||
}
|
||||
|
||||
private static boolean isHealthyMenu() {
|
||||
return Dish.menu.stream().allMatch(dish -> dish.getCalories() < 1000);
|
||||
}
|
||||
|
||||
private static boolean isVegetarianFriendlyMenu() {
|
||||
return Dish.menu.stream().anyMatch(Dish::isVegetarian);
|
||||
}
|
||||
|
||||
}
|
||||
28
RxJava/basic/src/_03_stream/StreamEx_11.java
Normal file
28
RxJava/basic/src/_03_stream/StreamEx_11.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package _03_stream;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class StreamEx_11 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
List<Integer> numbers = Arrays.asList(3, 4, 5, 1, 2);
|
||||
|
||||
Integer sum = numbers.stream().reduce(0, Integer::sum);
|
||||
System.out.println("sum = " + sum);
|
||||
|
||||
numbers.stream().reduce(Math::min)
|
||||
.ifPresent(System.out::println);
|
||||
|
||||
numbers.stream().reduce(Math::max)
|
||||
.ifPresent(System.out::println);
|
||||
|
||||
List<String> strings = Arrays.asList("a", "b", "c");
|
||||
|
||||
strings.stream()
|
||||
.filter(str -> !str.equals("b"))
|
||||
.reduce((a, b) -> a + b)
|
||||
.ifPresent(System.out::println);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user