コース一覧
Java 中級:コレクション・Stream・例外処理
Stream API まとめクイズ

Java 中級:コレクション・Stream・例外処理

コレクション、ジェネリクス、例外処理、Stream API、関数型インターフェース、日付処理、ファイル I/O、継承など Java の中級トピックを実践的に学べるコースです。Java の基礎文法とオブジェクト指向を理解している学習者を対象に、現場の Java コードを読み書きするための知識を補強します。約 16 時間 (1 日 30 分 × 32 日) で 64 レッスンを修了でき、修了後は Spring Boot や業務システム開発に必要な Java 力が身につきます。

1
コレクション基礎
01. ArrayList を使う5分
02. List を走査する5分
03. 要素の削除と検索5分
04. HashMap の基本5分
05. Map を走査する5分
06. Set で重複を排除5分
07. Collections クラスの便利メソッド5分
08. コレクション基礎 まとめクイズ5分
2
ジェネリクス
01. ジェネリッククラスを作る5分
02. ジェネリックメソッド5分
03. 境界型パラメータ5分
04. ワイルドカード ?5分
05. Pair<K,V> を作る5分
06. ジェネリクス まとめクイズ5分
3
例外処理
01. try-catch で例外をつかむ5分
02. 複数の catch ブロック5分
03. throws と例外の伝播5分
04. 独自の例外を作る5分
05. try-with-resources5分
06. finally ブロック5分
07. 例外処理 まとめクイズ5分
4
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分
5
関数型インターフェース
01. ラムダ式の基本5分
02. メソッド参照 ::5分
03. Function インターフェース5分
04. Predicate インターフェース5分
05. Consumer と Supplier5分
06. BiFunction と 2 引数の関数5分
07. 関数型インターフェース まとめクイズ5分
6
文字列操作
01. String.format で書式化5分
02. StringBuilder で連結5分
03. 正規表現の基本5分
04. split と join5分
05. 文字列操作 まとめクイズ5分
7
日付と時刻
01. LocalDate で日付を扱う5分
02. LocalDateTime で時刻も扱う5分
03. Duration で時間差を計算5分
04. 日付の書式化とパース5分
05. 日付の加減算5分
06. 日付と時刻 まとめクイズ5分
8
ファイル I/O
01. Files でファイルに書き込む5分
02. ファイルを行単位で読む5分
03. Path でファイルパスを扱う5分
04. BufferedReader と Stream API5分
05. ファイルの存在確認と削除5分
06. ファイル I/O まとめクイズ5分
9
継承とポリモーフィズム
01. extends で継承する5分
02. super で親を呼ぶ5分
03. メソッドのオーバーライド5分
04. abstract で抽象クラス5分
05. interface で契約を定義5分
06. default メソッド5分
07. instanceof と型パターン5分
08. ポリモーフィズムを活かす5分
09. 継承とポリモーフィズム まとめクイズ5分

Java 中級:コレクション・Stream・例外処理

01ArrayList を使う
02List を走査する
03要素の削除と検索
04HashMap の基本
05Map を走査する
06Set で重複を排除
07Collections クラスの便利メソッド
08コレクション基礎 まとめクイズ
09ジェネリッククラスを作る
10ジェネリックメソッド
11境界型パラメータ
12ワイルドカード ?
13Pair<K,V> を作る
14ジェネリクス まとめクイズ
15try-catch で例外をつかむ
16複数の catch ブロック
17throws と例外の伝播
18独自の例外を作る
19try-with-resources
20finally ブロック
21例外処理 まとめクイズ
22Stream を作る
23filter で絞り込む
24map で変換する
25reduce で集約する
26collect で集める
27sorted で並び替え
28distinct で重複排除
29limit と skip
30並列ストリーム
31Stream API まとめクイズ
32ラムダ式の基本
33メソッド参照 ::
34Function インターフェース
35Predicate インターフェース
36Consumer と Supplier
37BiFunction と 2 引数の関数
38関数型インターフェース まとめクイズ
39String.format で書式化
40StringBuilder で連結
41正規表現の基本
42split と join
43文字列操作 まとめクイズ
44LocalDate で日付を扱う
45LocalDateTime で時刻も扱う
46Duration で時間差を計算
47日付の書式化とパース
48日付の加減算
49日付と時刻 まとめクイズ
50Files でファイルに書き込む
51ファイルを行単位で読む
52Path でファイルパスを扱う
53BufferedReader と Stream API
54ファイルの存在確認と削除
55ファイル I/O まとめクイズ
56extends で継承する
57super で親を呼ぶ
58メソッドのオーバーライド
59abstract で抽象クラス
60interface で契約を定義
61default メソッド
62instanceof と型パターン
63ポリモーフィズムを活かす
64継承とポリモーフィズム まとめクイズ

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() を持ちます。

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

ログインが必要です

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