統計情報といえば、データベースなわけですが、今回は違います。
 ここでは、件数、合計、平均、最小、最大のことです。
DoubleSummaryStatisticsを使って、レコードクラスの統計情報を取得するサンプル
レコードに保持しいている得点をもとに、件数、合計、平均、最小、最大の統計情報を取得します。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import java.util.Arrays; import java.util.DoubleSummaryStatistics; import java.util.List; public class SummaryStatisticsTest {     public static void main(String[] args) {         //データ準備         List<ScoreRec> scoreList = Arrays.asList(             new ScoreRec("織田信長", 85 , 90),             new ScoreRec("豊臣秀吉", 88 , 70),             new ScoreRec("柴田勝家", 60 , 92),             new ScoreRec("前田利家", 72 , 78),             new ScoreRec("徳川家康", 78 , 75)         );         //スコア1の統計情報を取得         DoubleSummaryStatistics dss1 = scoreList.stream()                 .mapToDouble(ScoreRec::score1)                 .summaryStatistics();         //スコア2の統計情報を取得         DoubleSummaryStatistics dss2 = scoreList.stream()                 .mapToDouble(ScoreRec::score2)                 .summaryStatistics();         //リストと統計情報を出力         scoreList.forEach(System.out::println);         System.out.println(dss1);         System.out.println(dss2);     }     record ScoreRec(String name, int score1, int score2) { } } | 
実行結果
レコードクラスを詰めたリストの内容を表示。
 また、レコード内の得点2つに対する統計情報を出力します。
| 1 2 3 4 5 6 7 | ScoreRec[name=織田信長, score1=85, score2=90] ScoreRec[name=豊臣秀吉, score1=88, score2=70] ScoreRec[name=柴田勝家, score1=60, score2=92] ScoreRec[name=前田利家, score1=72, score2=78] ScoreRec[name=徳川家康, score1=78, score2=75] DoubleSummaryStatistics{count=5, sum=383.000000, min=60.000000, average=76.600000, max=88.000000} DoubleSummaryStatistics{count=5, sum=405.000000, min=70.000000, average=81.000000, max=92.000000} | 
サンプルの解説
Stream#summaryStatistics()によって、統計情報(DoubleSummaryStatistics)が取得できます。
 今回は、DoubleStreamを使用していますが、IntStream、LongStreamでも同様に統計情報が取得できます。











