상세 컨텐츠

본문 제목

[Stream] 스트림 Optional : orElse, ifPresent

Java

by 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);
                    }
                });

    }
}

 

 

관련글 더보기

댓글 영역