モジュール java.base
パッケージ java.util

クラスDoubleSummaryStatistics

java.lang.Object
java.util.DoubleSummaryStatistics
すべての実装されたインタフェース:
DoubleConsumer

public class DoubleSummaryStatistics extends Object implements DoubleConsumer
カウント数、最小、最大、合計、平均などの統計情報を収集するための状態オブジェクト。

このクラスは、streamsを扱う(必須ではないが)ために作られたものです。 たとえば、次を使って、doubleのストリームに関するサマリー統計を計算することができます。

 
 DoubleSummaryStatistics stats = doubleStream.collect(DoubleSummaryStatistics::new,
                                                      DoubleSummaryStatistics::accept,
                                                      DoubleSummaryStatistics::combine);
 

DoubleSummaryStatisticsは、streamリダクション・ターゲットとして使用できます。 たとえば、

 
 DoubleSummaryStatistics stats = people.stream()
     .collect(Collectors.summarizingDouble(Person::getWeight));
これは、単一パスで、人数だけでなく、その体重の最小値、最大値、合計、および平均値も計算します。

実装上のノート:
この実装はスレッドに対して安全ではありません。 ただし、パラレル・ストリームでCollectors.summarizingDouble()を使用することは安全です。これは、Stream.collect()のパラレル実装によって、安全かつ効率的なパラレル実行に必要なパーティション化、分離および結果のマージが提供されるためです。

この実装は、カウントのオーバーフローをチェックしません。

導入されたバージョン:
1.8
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    ゼロ・カウント、ゼロ・サム、Double.POSITIVE_INFINITY min、Double.NEGATIVE_INFINITY max、ゼロ平均を持つ空のインスタンスを構築します。
    DoubleSummaryStatistics(long count, double min, double max, double sum)
    指定されたcount, min, maxおよびsumを使用して、空でないインスタンスを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    accept(double value)
    別の値をサマリー情報に記録します。
    void
    もう一方のDoubleSummaryStatisticsの状態をこれに統合します。
    final double
    記録された値の算術平均を返します。値が記録されていない場合は0を返します。
    final long
    記録された値のカウントを返します。
    final double
    記録された最大値を返します。記録された値がNaNだった場合はDouble.NaNを返し、値が記録されなかった場合はDouble.NEGATIVE_INFINITYを返します。
    final double
    記録された最小値を返します。記録された値がNaNだった場合はDouble.NaNを返し、値が記録されなかった場合はDouble.POSITIVE_INFINITYを返します。
    final double
    記録された値の合計を返します。値が記録されていない場合は0を返します。
    デバッグに適しているこのオブジェクトの空ではない文字列表現を返します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    インタフェースjava.util.function.DoubleConsumerで宣言されたメソッド

    andThen
  • コンストラクタの詳細

    • DoubleSummaryStatistics

      public DoubleSummaryStatistics()
      ゼロ・カウント、ゼロ・サム、Double.POSITIVE_INFINITY min、Double.NEGATIVE_INFINITY max、ゼロ平均を持つ空のインスタンスを構築します。
    • DoubleSummaryStatistics

      public DoubleSummaryStatistics(long count, double min, double max, double sum) throws IllegalArgumentException
      指定されたcount, min, maxおよびsumを使用して、空でないインスタンスを構築します。

      countがゼロの場合、残りの引数は無視され、空のインスタンスが構築されます。

      引数が矛盾する場合は、IllegalArgumentExceptionがスローされます。 必要な一貫した議論条件は:

      • count >= 0
      • (min <= max && !isNaN(sum)) || (isNaN(min) && isNaN(max) && isNaN(sum))

      APIのノート:
      引数の正確性の強制は、DoubleSummaryStatisticsソース・インスタンスから取得された記録された値のセットが、ソースの記録された値のカウントの算術オーバーフローのために、このコンストラクタの引数の有効なセットでない可能性があることを意味します。 一貫した引数条件では、内部的に一貫性のないインスタンスの作成を防止するには十分ではありません。 このような状態の例は、: count= 2,min= 1,max= 2,andsum = 0。
      パラメータ:
      count - 値の数
      min - 最小値
      max - 最大値
      sum - すべての値の合計
      例外:
      IllegalArgumentException - 引数が矛盾する場合
      導入されたバージョン:
      10
  • メソッドの詳細

    • accept

      public void accept(double value)
      別の値をサマリー情報に記録します。
      定義:
      accept、インタフェースDoubleConsumer
      パラメータ:
      value - 入力値
    • combine

      public void combine(DoubleSummaryStatistics other)
      もう一方のDoubleSummaryStatisticsの状態をこれに統合します。
      パラメータ:
      other - もう一方のDoubleSummaryStatistics
      例外:
      NullPointerException - otherがnullである場合
    • getCount

      public final long getCount()
      記録された値のカウントを返します。
      戻り値:
      値の数
    • getSum

      public final double getSum()
      記録された値の合計を返します。値が記録されていない場合は0を返します。

      浮動小数点合計の値は、入力値と加算操作順序の両方の関数になります。 このメソッドの加算操作の順序は意図的に未定義になっていますが、それは、実装が計算結果の速度や精度を柔軟に改善できるようにするためです。 特に、このメソッドを補正加算などのテクニックを使って実装すれば、double値の単純な合計に比べ、数値合計の誤り限界を減らせます。 操作の順序が未指定であり、集計スキームが異なる可能性があるため、このメソッドの出力は同じ入力値で異なる場合があります。

      様々な条件によって、無限の合計が計算される場合があります。 これは、合計されるすべての記録された値が有限である場合でも発生する可能性があります。 記録された値が無限の場合、合計は無限になります:

      • 記録された値がNaNの場合、最後の合計はNaNになります。
      • 記録された値に1つ以上の無限大が含まれている場合、合計は無限またはNaNになります。
        • 記録された値に逆符号の無限大が含まれている場合、合計はNaNになります。
        • 記録された値に1つの符号の無限大が含まれ、中間合計が反対符号の無限大にオーバーフローする場合、合計はNaNになります。
      有限値の中間合計が逆符号付き無限大にオーバーフローする可能性があります。その場合、記録された値がすべて有限であっても、最終的な合計はNaNになります。 記録されたすべての値がゼロの場合、ゼロの符号は最終的な合計で保持される保証はありません。

      APIのノート:
      値を大きさの絶対値の昇順にソートすると、結果の精度が改善される傾向があります。
      戻り値:
      値の合計。値がない場合はゼロ
    • getMin

      public final double getMin()
      記録された最小値を返します。記録された値がNaNだった場合はDouble.NaNを返し、値が記録されなかった場合はDouble.POSITIVE_INFINITYを返します。 数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。
      戻り値:
      記録された最小値。記録された値のいずれかがNaNだった場合はDouble.NaN。値が記録されなかった場合はDouble.POSITIVE_INFINITY
    • getMax

      public final double getMax()
      記録された最大値を返します。記録された値がNaNだった場合はDouble.NaNを返し、値が記録されなかった場合はDouble.NEGATIVE_INFINITYを返します。 数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。
      戻り値:
      記録された最大値。記録された値のいずれかがNaNだった場合はDouble.NaN。値が記録されなかった場合はDouble.NEGATIVE_INFINITY
    • getAverage

      public final double getAverage()
      記録された値の算術平均を返します。値が記録されていない場合は0を返します。

      計算された平均は数値的に変化し、合計の計算として特殊なケース動作を持つ場合があります。詳細は、getSum()を参照してください。

      APIのノート:
      値を大きさの絶対値の昇順にソートすると、結果の精度が改善される傾向があります。
      戻り値:
      値の算術平均。値がない場合はゼロ
    • toString

      public String toString()
      デバッグに適しているこのオブジェクトの空ではない文字列表現を返します。 正確な表示フォーマットは未指定であり、実装とバージョンの間で異なることがあります。
      オーバーライド:
      toString、クラスObject
      戻り値:
      このオブジェクトの文字列表現