우리는 모든 값 int거나 내가 어떻게 BigDecimal의 값의 목록을합
return items.stream().mapToInt(i -> i).sum();
목록 긴 또는 다른 원시 데이터 형식 값은 우리가 사용하는 모든 값의 태양을 취득하는 경우 나는 일반지도를 만들려고 mapToBigDecimal 같은 디폴트 방법이 없기 때문에 Java8
를 사용하여 모든 값의 합을 찾을 그때 당신은 Stream#reduce(BinaryOperator)
을 사용할 수 있습니다 sum()
또는를 반환 리스트가 하늘의 경우는 0을 돌려주고 싶다.'.reduce (BigDecimal.ZERO, (i, j) -> i.add (j))'- 이것은 Optional 대신 BigDecimal를 리턴한다. –
람다를 메소드 참조'BigDecimal :: add'로 대체하는 것이 가능합니다. 왜냐하면 그것은'BinaryOperator'로 컴파일 될 수 있기 때문입니다. 'MathContext'가 없으면'add'도'ArithmeticExceptions'을 생성 할 수 있기 때문에 저는 조언하지 않을 것입니다. 보다 안전한 구현은, MathContext를 선택해, 그 존재를 「추가」하는 람다를 사용하는 것입니다. –
추가에 중립 요소가 있기 때문에'reduce (BigDecimal.ZERO, BigDecimal :: add)'를 사용할 수 있으며'Optional'을 다룰 필요가 없습니다. – Holger