OptionalInt, OptionalDouble, OptionalLong
- 컬렉션에 값이 없을 경우 집계 메서드를 사용하면 예외 발생된다.
- 예외방지 + default 값 설정하는 기능을 제공한다.
1. 컬렉션에 값이 존재하는 경우
List<Integer> list = new ArrayList<Integer>();
list.add(10);
list.add(25);
OptionalDouble avg = list.stream()
.mapToDouble(a->a)
.average();
System.out.println(avg); //OptionalDouble[17.5]
System.out.println(avg.getAsDouble()); //17.5
System.out.println(avg.orElse(0.0)); //17.5 - 값이 있다면 값 출력
2. 컬렉션에 값이 없는 경우
List<Integer> list2 = new ArrayList<Integer>();
OptionalDouble avg2 = list2.stream().mapToDouble(a->a).average();
System.out.println(avg2); //OptionalDouble.empty
// System.out.println(avg2.getAsDouble()); //예외가 발생된다. list2 안에 값이 없기 때문.
System.out.println(avg2.orElse(0.0)); //예외 발생 대신에 기본값으로 처리된다.
'Programming Language > JAVA' 카테고리의 다른 글
자바 스트림 API - 최종처리(4)_collect2 (0) | 2023.09.08 |
---|---|
자바 스트림 API - 최종처리(3)_collect (0) | 2023.09.08 |
자바 스트림 API - 최종처리(2)_IntStream, LongStream, DoubleStream의 집계메서드 (0) | 2023.09.08 |
자바 스트림 API - 최종처리_allMatch/anyMatch/noneMatch (0) | 2023.09.08 |
자바 스트림 API- 중간처리(3)_boxed/asDoubleStream() (0) | 2023.09.07 |
OptionalInt, OptionalDouble, OptionalLong
- 컬렉션에 값이 없을 경우 집계 메서드를 사용하면 예외 발생된다.
- 예외방지 + default 값 설정하는 기능을 제공한다.
1. 컬렉션에 값이 존재하는 경우
List<Integer> list = new ArrayList<Integer>();
list.add(10);
list.add(25);
OptionalDouble avg = list.stream()
.mapToDouble(a->a)
.average();
System.out.println(avg); //OptionalDouble[17.5]
System.out.println(avg.getAsDouble()); //17.5
System.out.println(avg.orElse(0.0)); //17.5 - 값이 있다면 값 출력
2. 컬렉션에 값이 없는 경우
List<Integer> list2 = new ArrayList<Integer>();
OptionalDouble avg2 = list2.stream().mapToDouble(a->a).average();
System.out.println(avg2); //OptionalDouble.empty
// System.out.println(avg2.getAsDouble()); //예외가 발생된다. list2 안에 값이 없기 때문.
System.out.println(avg2.orElse(0.0)); //예외 발생 대신에 기본값으로 처리된다.
'Programming Language > JAVA' 카테고리의 다른 글
자바 스트림 API - 최종처리(4)_collect2 (0) | 2023.09.08 |
---|---|
자바 스트림 API - 최종처리(3)_collect (0) | 2023.09.08 |
자바 스트림 API - 최종처리(2)_IntStream, LongStream, DoubleStream의 집계메서드 (0) | 2023.09.08 |
자바 스트림 API - 최종처리_allMatch/anyMatch/noneMatch (0) | 2023.09.08 |
자바 스트림 API- 중간처리(3)_boxed/asDoubleStream() (0) | 2023.09.07 |