コース一覧
Java中級:Streamと関数型
Stream API まとめクイズ

Java中級:Streamと関数型

Stream APIと関数型インターフェースを学び、データ処理を宣言的で再利用しやすい形に書けるようにします。

1
Stream API
01. Stream を作る5分
02. filter で絞り込む5分
03. map で変換する5分
04. reduce で集約する5分
05. collect で集める5分
06. sorted で並び替え5分
07. distinct で重複排除5分
08. limit と skip5分
09. 並列ストリーム5分
10. Stream API まとめクイズ5分
2
関数型インターフェース
01. ラムダ式の基本5分
02. メソッド参照 ::5分
03. Function インターフェース5分
04. Predicate インターフェース5分
05. Consumer と Supplier5分
06. BiFunction と 2 引数の関数5分
07. 関数型インターフェース まとめクイズ5分

Java中級:Streamと関数型

01Stream を作る
02filter で絞り込む
03map で変換する
04reduce で集約する
05collect で集める
06sorted で並び替え
07distinct で重複排除
08limit と skip
09並列ストリーム
10Stream API まとめクイズ
11ラムダ式の基本
12メソッド参照 ::
13Function インターフェース
14Predicate インターフェース
15Consumer と Supplier
16BiFunction と 2 引数の関数
17関数型インターフェース まとめクイズ

Stream API まとめクイズ

クイズ1

次の 4 つの Stream パイプラインのうち、「int[] arr (100 万件) から、正の数 (n > 0) だけを取り出し、降順 (大きい順) に並べ、重複を除き、先頭 5 件 を int[] で取得する」 という要件を、正しく かつ 最も性能の良い順序 で実装しているのはどれでしょうか。

Java

// 選択肢 A
int[] r = Arrays.stream(arr).boxed()
    .sorted(Comparator.reverseOrder())
    .filter(n -> n > 0)
    .distinct()
    .limit(5)
    .mapToInt(Integer::intValue)
    .toArray();

// 選択肢 B
int[] r = Arrays.stream(arr).boxed()
    .filter(n -> n > 0)
    .distinct()
    .sorted(Comparator.reverseOrder())
    .limit(5)
    .mapToInt(Integer::intValue)
    .toArray();

// 選択肢 C
int[] r = Arrays.stream(arr).boxed()
    .filter(n -> n > 0)
    .limit(5)
    .distinct()
    .sorted(Comparator.reverseOrder())
    .mapToInt(Integer::intValue)
    .toArray();

// 選択肢 D
int[] r = Arrays.stream(arr).boxed()
    .filter(n -> n > 0)
    .distinct()
    .sorted(Comparator.reverseOrder())
    .limit(5)
    .forEach(System.out::println);

クイズ2

次のうち、Stream API の中間操作 (intermediate operation) だけを並べたグループはどれでしょうか。

クイズ3

次のコードが返す値は何でしょうか。reduce の 初期値 を含む集約の仕組みに注意して 1 つ選んでください。

Java

int result = Stream.of(1, 2, 3, 4)
    .reduce(10, Integer::sum);

クイズ4

parallelStream を使うときの 注意点 として、最も正しい説明はどれでしょうか。

クイズ5

次のうち、Collectors.groupingBy を使って 「年齢ごとに人数を数える」 Stream パイプラインとして正しいのはどれでしょうか。people は List<Person> で、Person は int getAge() を持ちます。

未回答の問題は、不正解として正解と解説のみ表示します

ログインが必要です

クイズに回答するにはログインしてください。