Java
[Stream] 스트림 Optional : orElse, ifPresent
kwanghyup
2020. 6. 18. 12:10
orElse
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class OptionalExam {
public static void main(String[] args) {
// orElse
List<Integer> list1 = new ArrayList<>();
double result1 = list1.stream().mapToInt(Integer::intValue).average()
.orElse(0); // 값이 있으면 값을 저장하고 없다면 0을 저장
System.out.println("result1 : "+result1);
List<Integer> list2 = Arrays.asList(88,93,77,88);
double result2 = list2.stream().mapToInt(Integer::intValue).average()
.orElse(0); // 값이 있으면 값을 저장하고 없다면 0을 저장
System.out.println("result2 : "+result2);
}
}
ifPresent
import java.util.Arrays;
import java.util.List;
public class OptionalExam {
public static void main(String[] args) {
// ifPresent
List<Integer> list3 = Arrays.asList(88,93,77,88);
list3.stream().mapToInt(Integer::intValue).average()
.ifPresent(avg-> System.out.println("avg")); // 값이 있으면 람다식 실행
}
}
import java.util.Arrays;
import java.util.List;
import java.util.function.DoubleConsumer;
public class OptionalExam {
public static void main(String[] args) {
// ifPresent
List<Integer> list3 = Arrays.asList(88,93,77,88);
list3.stream().mapToInt(Integer::intValue).average()
.ifPresent(new DoubleConsumer() {
@Override
public void accept(double value) { // value 는 스트림에서 받은 average() 값
System.out.println(value);
}
});
}
}