• ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • 日経BP
  • PR

  • PR

  • PR

  • PR

  • PR

最新Java情報局

Java SE 8でのパラレルストリームの生成や基本的な使い方

櫻庭 祐一=Java in the Box 2016/03/10 ITpro

 Project Lambdaが策定された大きな理由としてパラレル処理があるのは、本連載の「Java SE 8、Stream APIの基本を理解する」で述べた通りです。

 ストリームでパラレル処理を行うには、パラレル処理用のストリームを使用します。しかし、パラレル処理用のストリームの型はjava.util.stream.Streamインタフェースなどで、シーケンシャルなストリームと変わりません。

 つまり、パラレルストリームさえ準備できれば、今まで説明してきたストリームと同じように使うことができるのです。もちろん、パラレル処理なので、全てがシーケンシャルな処理と同じというわけにはいきません。

 そこで、今回はパラレルストリームの生成や基本的な使い方から、パラレルストリームを使う上での注意点まで説明していきます。

パラレルストリームの生成

 パラレルストリームの生成には2種類の方法があります。一方がソースから直接パラレルストリームを生成する方法、もう一方がシーケンシャルなストリームからパラレルストリームを生成する方法です。

 双方を順に説明していきましょう。

ソースからパラレルストリームを生成

 ソースの型がjava.util.Collectionインタフェースであれば、ソースからパラレルストリームを生成できます。

 Collectionインタフェースでシーケンシャルストリームを生成するにはstreamメソッドを使用しましたが、パラレルストリームを生成するにはparallelStreamメソッドを使用します。

 

リスト1●コレクションからパラレルストリームを生成

List<String> list = ……;

// パラレルストリームを生成
Stream<String> parallelStream = list.parallelStream();

 

 リスト1ではCollectionインタフェースのサブインタフェースであるjava.util.Listインタフェースのオブジェクトから、赤字で示したparallelStreamメソッドを使用してパラレルストリームを生成しています。

 前述したように、パラレルストリームといってもシーケンシャルなストリームと型は同じです。リスト1でもparallelStreamメソッドで生成したパラレルストリームの型はStreamインタフェースになっています。

 StreamインタフェースにはパラレルストリームであるかどうかをチェックするisParallelメソッドも定義されています。しかし、ストリームはメソッドチェーンで使用することが多いため、isParallelメソッドを使用できる場面は少ないはずです。

 コードを記述する時に、パラレルなのかシーケンシャルなのかよく注意して記述するようにしましょう。

ここから先はITpro会員(無料)の登録が必要です。

次ページ シーケンシャルストリームからパラレルストリームを...
  • 1
  • 2
  • 3
  • 4
  • 5

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る