IntSummaryStatistics — int 값 통계 수집기
IntSummaryStatistics — int 값 통계 수집기
IntSummaryStatistics는 count(개수), min(최소), max(최대), sum(합), average(평균) 같은 통계를 수집하는 상태 객체예요. 스트림과 함께 동작하도록 설계됐지만(필수는 아니에요) int 스트림의 축소 대상으로 쓸 수 있어요.
본문
public class IntSummaryStatistics extends Object implements IntConsumer
IntSummaryStatistics stats = intStream.collect(
IntSummaryStatistics::new,
IntSummaryStatistics::accept,
IntSummaryStatistics::combine);
이처럼 collect에 공급자·누적자·결합자를 넘겨 한 번의 패스로 개수와 최소·최대·합·평균을 계산할 수 있어요. Collectors.summarizingInt(...)를 쓰면 더 간단해요.
생성자
IntSummaryStatistics()— count 0, sum 0, minInteger.MAX_VALUE, maxInteger.MIN_VALUE, average 0인 빈 인스턴스를 만들어요.IntSummaryStatistics(long count, int min, int max, long sum)— 지정된 통계로 비어 있지 않은 인스턴스를 만들어요.count가 0이면 나머지 인자는 무시하고 빈 인스턴스를 만들어요. 인자가 일관되지 않으면(count < 0또는min > max)IllegalArgumentException을 던져요.
메서드
accept(int value)— 새 값을 통계 정보에 기록해요.combine(IntSummaryStatistics other)— 다른 인스턴스의 상태를 이 인스턴스에 결합해요.getCount()— 기록된 값의 개수를 반환해요.getSum()— 기록된 값의 합을 반환하고, 값이 없으면 0을 반환해요.getMin()— 기록된 최소값을 반환하고, 값이 없으면Integer.MAX_VALUE를 반환해요.getMax()— 기록된 최대값을 반환하고, 값이 없으면Integer.MIN_VALUE를 반환해요.getAverage()— 기록된 값의 산술 평균을 반환하고, 값이 없으면 0을 반환해요.toString()— 디버깅에 적합한 비어 있지 않은 문자열 표현을 반환해요.