Class LongStatistics
- java.lang.Object
-
- org.apache.commons.statistics.descriptive.LongStatistics
-
- All Implemented Interfaces:
LongConsumer
public final class LongStatistics extends Object implements LongConsumer
Statistics forlong
values.This class provides combinations of individual statistic implementations in the
org.apache.commons.statistics.descriptive
package.Supports up to 263 (exclusive) observations. This implementation does not check for overflow of the count.
- Since:
- 1.1
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
LongStatistics.Builder
A builder forLongStatistics
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(long value)
Updates the state of the statistics to reflect the addition ofvalue
.static LongStatistics.Builder
builder(Statistic... statistics)
Returns a new builder configured to create instances to compute the specifiedstatistics
.LongStatistics
combine(LongStatistics other)
Combines the state of theother
statistics into this one.BigInteger
getAsBigInteger(Statistic statistic)
Gets the value of the specifiedstatistic
as aBigInteger
.double
getAsDouble(Statistic statistic)
Gets the value of the specifiedstatistic
as adouble
.long
getAsLong(Statistic statistic)
Gets the value of the specifiedstatistic
as along
.long
getCount()
Return the count of values recorded.StatisticResult
getResult(Statistic statistic)
Gets a supplier for the value of the specifiedstatistic
.boolean
isSupported(Statistic statistic)
Check if the specifiedstatistic
is supported.static LongStatistics
of(Set<Statistic> statistics, long... values)
Returns a new instance configured to compute the specifiedstatistics
populated using the inputvalues
.static LongStatistics
of(Statistic... statistics)
Returns a new instance configured to compute the specifiedstatistics
.LongStatistics
setConfiguration(StatisticsConfiguration v)
Sets the statistics configuration.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.function.LongConsumer
andThen
-
-
-
-
Method Detail
-
of
public static LongStatistics of(Statistic... statistics)
Returns a new instance configured to compute the specifiedstatistics
.The statistics will be empty and so will return the default values for each computed statistic.
- Parameters:
statistics
- Statistics to compute.- Returns:
- the instance
- Throws:
IllegalArgumentException
- if there are nostatistics
to compute.
-
of
public static LongStatistics of(Set<Statistic> statistics, long... values)
Returns a new instance configured to compute the specifiedstatistics
populated using the inputvalues
.Use this method to create an instance populated with a (variable) array of
long[]
data:LongStatistics stats = LongStatistics.of( EnumSet.of(Statistic.MIN, Statistic.MAX), 1, 1, 2, 3, 5, 8, 13);
- Parameters:
statistics
- Statistics to compute.values
- Values.- Returns:
- the instance
- Throws:
IllegalArgumentException
- if there are nostatistics
to compute.
-
builder
public static LongStatistics.Builder builder(Statistic... statistics)
Returns a new builder configured to create instances to compute the specifiedstatistics
.Use this method to create an instance populated with an array of
long[]
data using theLongStatistics.Builder.build(long...)
method:long[] data = ... LongStatistics stats = LongStatistics.builder( Statistic.MIN, Statistic.MAX, Statistic.VARIANCE) .build(data);
The builder can be used to create multiple instances of
LongStatistics
to be used in parallel, or on separate arrays oflong[]
data. These may becombined
. For example:long[][] data = ... LongStatistics.Builder builder = LongStatistics.builder( Statistic.MIN, Statistic.MAX, Statistic.VARIANCE); LongStatistics stats = Arrays.stream(data) .parallel() .map(builder::build) .reduce(LongStatistics::combine) .get();
The builder can be used to create a
Collector
for repeat use on multiple data:LongStatistics.Builder builder = LongStatistics.builder( Statistic.MIN, Statistic.MAX, Statistic.VARIANCE); Collector<long[], LongStatistics, LongStatistics> collector = Collector.of(builder::build, (s, d) -> s.combine(builder.build(d)), LongStatistics::combine); // Repeated long[][] data = ... LongStatistics stats = Arrays.stream(data).collect(collector);
- Parameters:
statistics
- Statistics to compute.- Returns:
- the builder
- Throws:
IllegalArgumentException
- if there are nostatistics
to compute.
-
accept
public void accept(long value)
Updates the state of the statistics to reflect the addition ofvalue
.- Specified by:
accept
in interfaceLongConsumer
- Parameters:
value
- Value.
-
getCount
public long getCount()
Return the count of values recorded.- Returns:
- the count of values
-
isSupported
public boolean isSupported(Statistic statistic)
Check if the specifiedstatistic
is supported.Note: This method will not return
false
if the argument isnull
.- Parameters:
statistic
- Statistic.- Returns:
true
if supported- Throws:
NullPointerException
- if thestatistic
isnull
- See Also:
getResult(Statistic)
-
getAsDouble
public double getAsDouble(Statistic statistic)
Gets the value of the specifiedstatistic
as adouble
.- Parameters:
statistic
- Statistic.- Returns:
- the value
- Throws:
IllegalArgumentException
- if thestatistic
is not supported- See Also:
isSupported(Statistic)
,getResult(Statistic)
-
getAsLong
public long getAsLong(Statistic statistic)
Gets the value of the specifiedstatistic
as along
.Use this method to access the
long
result for exact integer statistics, for exampleStatistic.MIN
.Note: This method may throw an
ArithmeticException
if the result overflows anlong
.- Parameters:
statistic
- Statistic.- Returns:
- the value
- Throws:
IllegalArgumentException
- if thestatistic
is not supportedArithmeticException
- if theresult
overflows anlong
or is not finite- See Also:
isSupported(Statistic)
,getResult(Statistic)
-
getAsBigInteger
public BigInteger getAsBigInteger(Statistic statistic)
Gets the value of the specifiedstatistic
as aBigInteger
.Use this method to access the
BigInteger
result for exact integer statistics, for exampleStatistic.SUM_OF_SQUARES
.Note: This method may throw an
ArithmeticException
if the result is not finite.- Parameters:
statistic
- Statistic.- Returns:
- the value
- Throws:
IllegalArgumentException
- if thestatistic
is not supportedArithmeticException
- if theresult
is not finite- See Also:
isSupported(Statistic)
,getResult(Statistic)
-
getResult
public StatisticResult getResult(Statistic statistic)
Gets a supplier for the value of the specifiedstatistic
.The returned function will supply the correct result after calls to
accept
orcombine
further values intothis
instance.This method can be used to perform a one-time look-up of the statistic function to compute statistics as values are dynamically added.
- Parameters:
statistic
- Statistic.- Returns:
- the supplier
- Throws:
IllegalArgumentException
- if thestatistic
is not supported- See Also:
isSupported(Statistic)
,getAsDouble(Statistic)
-
combine
public LongStatistics combine(LongStatistics other)
Combines the state of theother
statistics into this one. Onlythis
instance is modified by thecombine
operation.The
other
instance must be compatible. This istrue
if theother
instance returnstrue
forisSupported(Statistic)
for all values of theStatistic
enum which are supported bythis
instance.Note that this operation is not symmetric. It may be possible to perform
a.combine(b)
but notb.combine(a)
. In the event that theother
instance is not compatible then an exception is raised before any state is modified.- Parameters:
other
- Another set of statistics to be combined.- Returns:
this
instance after combiningother
.- Throws:
IllegalArgumentException
- if theother
is not compatible
-
setConfiguration
public LongStatistics setConfiguration(StatisticsConfiguration v)
Sets the statistics configuration.These options only control the final computation of statistics. The configuration will not affect compatibility between instances during a
combine
operation.Note: These options will affect any future computation of statistics. Supplier functions that have been previously created will not be updated with the new configuration.
- Parameters:
v
- Value.- Returns:
this
instance- Throws:
NullPointerException
- if the value is null- See Also:
getResult(Statistic)
-
-