12月10日(木)1、2コマ目
今日、やったこと
ストリームAPI(中間操作、終端操作)
今日のホワイトボード
(おさらい)ストリームAPIのイメージ
ストリームに対して、中間操作(フィルタリング、データ加工、ソート)を行い、最後に終端操作でほしいデータだけ取り出す(最大値や最小値)、ほしいデータへ変更(リストへ)する。
|
| 図 ストリームAPIのイメージ |
[中間操作]map():データの加工
ストリーム中の各データを加工します。
例えば、「Employeeクラスのインスタンスから氏名だけを取り出す」等。
|
| 図 [中間操作]map() |
[中間操作]sorted():ソート
ソートです。
ストリームの各要素のソートを行います。
引数で渡されたComparatorの戻り値が正の場合、2つの要素を入れ替えます。
|
| 図 [中間操作]sorted() |
練習問題
練習1
部署がADMINかDEVELOPな人をIDの昇順で出力。
ただし、出力フォーマットは以下のとおり。
[ID]氏名(部署)サラリー
練習2
サラリートップ3をサラリーの降順で出力。
ただし、出力フォーマットは以下のとおり。
氏名(部署)サラリー。
終端操作
ストリームの各データをリストにまとめたり、最大値や最小値を取得したりとストリームからほしいデータだけを取り出したり、別の形へ変更します。
|
| 図 終端操作(左側) |
Optional<T>型
終端操作のmax()やmin()の戻り値はOptional<T>型です。
Optional<T>型はT型のインスタンスをラップしており、get()メソッドで取り出すことができます。
もし、ラップしているT型のインスタンスがない(null)の場合、get()メソッドはNoSuchElementExceptionをスローします。よって、nullチェックをする必要がありません。
|
| 図 Optional<T>型(右側) |





コメント