それぞれに操作を行うメソッドを用意しています。ドキュメントを見てみましょう。reducer)指定されたリデューサを使用して値を結合することにより、すべての(キー、値)ペアの指定された変換の累積結果を返します。結果がない場合はnullを返します。要素の変換を返す関数。reducer)指定されたリデューサを使用して値を結合することにより、すべてのキーの指定された変換の累積結果を返します。結果がない場合はnullを返します。要素の変換を返す関数。reducer)指定されたリデューサを使用して値を結合することにより、すべての値の指定された変換の累積結果を返します。結果がない場合はnullを返します。要素の変換を返す関数。reducer)指定されたリデューサを使用して値を結合することにより、すべてのエントリの指定された変換の累積結果を返します。結果がない場合はnullを返します。要素の変換を返す関数。これらは、入力をプリミティブ型に変換して基準値を指定して累積計算して値を返すというものです。ドキュメントでは次のようになっています。reducer)指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての値の指定された変換の累積結果を返します。戻り値:すべての値の指定された変換を累積した結果それではプログラムを見ていきましょう。一つの文字列として返しています。(解りやすいように連結用の文字を追加しています。返された値をシステムの改行文字を加えて結合して返します。このプログラムの実行結果は次のようになります。返された値をシステムの改行文字を加えて結合して返します。このプログラムの実行結果は次のようになります。返された値をシステムの改行文字を加えて結合して返します。このプログラムの実行結果は次のようになります。一つの文字列として返しています。(解りやすいように連結用の文字を追加しています。返された値をシステムの改行文字を加えて結合して返します。このプログラムの実行結果は次のようになります。最大値を求める累積処理を行い最大値を返します。このプログラムの実行結果は次のようになります。————-10これで、ざっくり試してみたのでお終いです。newKeySet()指定された型からBoolean.TRUEへの、ConcurrentHashMapに連動する新しいSetを作成します。initialCapacity)指定された型からBoolean.TRUEへの、ConcurrentHashMapに連動する新しいSetを作成します。実装は、この多数の要素を格納するように内部のサイズ設定を実行する。時と比べるとかなり使い勝手がよくなった。特徴を思い出してみましょう。すべてのメソッドを共通のロックで同期化してアクセスを一度に一つのスレッドに限定する代わりに、ロックストライピングという小さな粒度のロック方式を採用することにより並行処理能力を高めています。スローすることはありません。なにより興味深いのはデータの取得時にはブロックすることがなく、更新についてはユーザーが並行レベルを設定できるということです。最後の並行レベルを設定できると言うところを試してみました。その中で並行レベルを設定できるのは次の引数を持つコンストラクタです。concurrencyLevel)指定された要素数(initialCapacity)、テーブル密度(loadFactor)および並行更新数のしきい値(concurrencyLevel)に基づく初期テーブル・サイズで、新しい空のマップを作成します。指定すると、実装はこの数の要素を格納できるように内部のサイズ設定を行う。並行して更新しているスレッドの推定数。実装はこの値をサイズ設定のヒントとして使用できる。並行レベルにあたります。レベルのデフォルト値が明記されなくなりました。昔と変わって無さそうです。インスタンスを生成して試してみました。個作って試してみました。1L);}}プログラムの実行結果は次のようになりました。34分42秒4334219810002651凄く大差がつきました。制限無しで試してみました。お遊びはこれでお終いです。