chevron_left

Java 8入門

PREMIUM
第2回

Java 8入門 -2回目(Stream API)-

2016年7月27日 60min

スライド資料

会員登録して、全てのスライドを見よう

1 / 26

授業の概要

2014年に Java 8がリリースされました。Java 8の主要な追加機能は以下の通りです。

  • 関数を扱うラムダ式文法の追加
  • 要素の集合を扱う Stream APIの追加
  • インターフェースへの defaultメソッドの追加
  • 新しい日付API、Date and Time APIの追加
  • 並列処理API、 completableFutureの追加

 

今回の授業では、上記のうちJavaのプログラムの書き方に大きく影響するラムダ式とStream APIについて2回に分けて学習します。

ラムダ式と Stream APIを使うことで、従来より短く簡単にプログラムを書けるようになります。

2回目はStream APIについて学習します。
Stream API は、配列・コレクション・ファイルなどの要素の集合に対する操作を汎用的に扱うAPIです。

クラスやメソッドの作成、コレクションの操作ができるなど、Javaについてある程度理解している方を対象にしています。授業で使用するソースコードは公開しますので、授業中にご自身のPCでソースを実際に実行いただけます。eclipse、NetBeans、IDEAなど好みの開発環境を用意することを推奨します。

■ この授業で学べること

  • Stream APIの概要
  • 生成・中間操作・終端操作の概要
  • 代表的な中間操作・終端操作の解説
  • Stream APIによるプログラムのデモ

 

<サンプルファイルについて>
今回の授業で使用するソースコード(Github) 適宜参照していただくか、zipでダウンロードしてローカルで実行してみてください。

▼取り込み方
1. zipファイル形式でダウンロードし、適当なフォルダに解凍します。
2. eclipseの場合、プロジェクトのインポートかmaven形式プロジェクトのインポートで上記のフォルダをeclipseにインポートします。
3. Idea, NetBeansの場合、"プロジェクトを開く"から、1で展開したフォルダまたはフォルダの中のpom.xmlを選択します。

こんな人にオススメ

Javaを学び始めたばかりで、Javaの新しい機能に興味がある方

授業で使用する教材

※授業以外での使用は禁止します

チャプター

play_arrow
自己紹介
01:18
play_arrow
授業の目的
00:36
play_arrow
Stream API の概要
02:42
play_arrow
Stream APIの例1-要素の判定
05:21
play_arrow
手続き型の例1-要素の判定
00:47
play_arrow
Stream APIの例2-抽出と加工
05:51
play_arrow
手続き型の例2-抽出と加工
00:16
play_arrow
Stream APIの利点
01:40
play_arrow
生成・中間操作・終端操作の概要
01:36
play_arrow
Stream APIはStreamオブジェクトの生成から開始
02:01
play_arrow
様々な集合を、Streamオブジェクトに変換できる
01:09
play_arrow
中間操作でStreamに処理を設定する
01:25
play_arrow
filterはラムダ式に合致する要素を抽出する
00:42
play_arrow
mapはデータの加工・型変換を行う
01:09
play_arrow
中間操作の連結(パイプライン)でロジックを構築する
02:01
play_arrow
終端操作でStreamから処理を実行し、結果を取得する
02:12
play_arrow
Collectメゾットで様々な結果を取得する
07:54
play_arrow
Stream APIの応用例
00:17
play_arrow
Stream APIの応用1:ファイルを扱う
03:51
play_arrow
Stream APIの応用2:parallelで並列処理を行う
04:37
play_arrow
まとめ
01:10
play_arrow
Q:従来Iteratorパターンのような形で実装をしていた箇所をStream APIに置き換える、のようなことを今思いついたとして、それは現実的ですか?
00:58
play_arrow
Q:コードがメソッドチェーンでつながっているからストリーム?
00:32
play_arrow
Q:anyMatch は条件にヒットしたら、それ以降の要素は評価されない(ループでbreakされるイメージ)と考えてよいですか?
00:48
play_arrow
Q:reduce()の間違い?
00:53
play_arrow
Q:ストリームに対して toList() とか単純に呼びだいけど。インターフェイスを挟むのがいかにもJava的
03:38
play_arrow
お知らせ