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() を持ちます。
未回答の問題は、不正解として正解と解説のみ表示します
ログインが必要です
クイズに回答するにはログインしてください。