LongSummaryStatistics — long 값 통계 수집기
LongSummaryStatistics — long 값 통계 수집기
LongSummaryStatistics는 count(개수), min(최소), max(최대), sum(합), average(평균) 같은 통계를 수집하는 상태 객체예요. int와 long 값을 모두 받아들일 수 있고, long 스트림의 축소 대상으로 쓸 수 있어요.
본문
public class LongSummaryStatistics extends Object
implements LongConsumer, IntConsumer
LongSummaryStatistics stats = longStream.collect(
LongSummaryStatistics::new,
LongSummaryStatistics::accept,
LongSummaryStatistics::combine);
한 번의 패스로 개수와 최소·최대·합·평균을 계산할 수 있어요. Collectors.summarizingLong(...)을 쓰면 더 간단해요.
생성자
LongSummaryStatistics()— count 0, sum 0, minLong.MAX_VALUE, maxLong.MIN_VALUE, average 0인 빈 인스턴스를 만들어요.LongSummaryStatistics(long count, long min, long max, long sum)— 지정된 통계로 비어 있지 않은 인스턴스를 만들어요.count가 0이면 나머지를 무시하고 빈 인스턴스를 만들고, 인자가 일관되지 않으면(count < 0또는min > max)IllegalArgumentException을 던져요.
메서드
accept(int value)/accept(long value)— 새int/long값을 통계에 기록해요.combine(LongSummaryStatistics other)— 다른 인스턴스의 상태를 결합해요.getCount()— 기록된 값의 개수를 반환해요.getSum()— 합을 반환하고, 값이 없으면 0을 반환해요.getMin()/getMax()— 최소/최대를 반환하고, 값이 없으면 각각Long.MAX_VALUE/Long.MIN_VALUE를 반환해요.getAverage()— 산술 평균을 반환하고, 값이 없으면 0을 반환해요.toString()— 디버깅용 문자열 표현을 반환해요.