このプロジェクトは、JUnitテスト形式の練習問題を解くことでStream APIの使い方を身につけることを目的としています。テストコード内の null 部分を実装し、テストが通れば正解です。
従業員データを使った実務に近い例題を通じて、filter、map、sorted、groupingByなど、よく使うStream操作を段階的に学習できます。
- Java基礎文法を習得済みの方
- Stream APIをこれから学びたい方
- Streamの使い方を実践形式で練習したい方
- JDK 17以上
- IntelliJ IDEA(推奨)
※ IntelliJ IDEAにはMavenが内蔵されているため、別途Mavenをインストールする必要はありません。
git clone https://github.com/your-username/java-stream-practice.gitまたは、GitHubからZIPをダウンロードして展開してください。
- IntelliJ IDEAを起動
- プロジェクトの
開くを選択 - クローンしたフォルダ(
java-stream-practice)を選択してOK - 「Trust Project」を選択
- Mavenの依存関係が自動的にダウンロードされます(右下に進捗が表示されます)
依存関係のダウンロード完了後、JDKが設定されていない場合は以下の手順で設定してください。
ファイル→プロジェクト構造を開くプロジェクト→SDKでJDK 17以上を選択OK
全16問が4つのレベルに分かれています。
| レベル | 内容 | 学習する操作 |
|---|---|---|
| Level 1 | 基本操作(5問) | filter, map, collect |
| Level 2 | 中間操作(4問) | sorted, distinct, limit, skip |
| Level 3 | 集約操作(5問) | reduce, average, groupingBy, max |
| Level 4 | 応用問題(4問) | 複合条件、複数操作の組み合わせ |
src/test/java/practice/StreamPracticeTest.javaを開く- 各テストメソッド内の
nullや0の部分をStream APIを使って実装 - テストを実行して結果を確認
個別のテストを実行する場合:
- テストメソッドの左側にある緑の再生ボタンをクリック
レベルごとにまとめて実行する場合:
- ネストしたクラス(
BasicOperationsなど)の左側にある再生ボタンをクリック
全テストを実行する場合:
StreamPracticeTestクラスの左側にある再生ボタンをクリック- または
Ctrl + Shift + F10(Windows)でクラス全体を実行
最初のうちは難しいかもしれません。以下は Level 1 の1問目の解答例です。
@Test
@DisplayName("1-1: 偶数のみを抽出する")
void filterEvenNumbers() {
List<Integer> result = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
assertEquals(List.of(2, 4, 6, 8, 10, 20, 30), result);
}java-stream-practice/
├── pom.xml
├── README.md
└── src/
├── main/java/practice/data/
│ ├── Employee.java # 従業員データのレコード
│ └── SampleData.java # サンプルデータ提供クラス
└── test/java/practice/
└── StreamPracticeTest.java # 練習問題(ここを編集)