티스토리 뷰

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));  //예외 발생 대신에 기본값으로 처리된다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함