CodeGym
キャンペーン
学習
コース
課題
アンケート & クイズ
ゲーム
ヘルプ
スケジュール
コミュニティ
ユーザー
フォーラム
チャット
記事
成功事例
アクティビティ
レビュー
サブスクリプション
ライトテーマ

レッスン

  • レビュー
  • 私たちについて
開始
学習開始
今すぐ学習を始める
  • 学習の進捗
  • コース
  • クエストマップ
  • レッスン
  • 独自の Collector と Spliterator

    JAVA 25 SELF
    レベル 33,レッスン 4
    この講義では、Stream API 向けに Collector を使って独自のコレクタを実装する方法と、それが本当に妥当な場面、さらに効率的な逐次・並列データ走査のために独自の Spliterator を実装する方法を解説します。コレクタの構成要素( supplier、 accumulator、 combiner、 finisher、 characteristics)を段階的に確認し、マルチマップや Top-N の例、 trySplit の戦略、そして特性( ORDERED、 SIZED、 SUBSIZED など)の正しい設定についても扱います。
    利用可能
  • List.of, Set.of, Map.of — 不変コレクション

    JAVA 25 SELF
    レベル 34,レッスン 0
    本講義では Java 9+ の不変コレクションを解説します: ファクトリメソッド List.of、 Set.of、 Map.of および Map.ofEntries。 Collections.unmodifiableList のラッパーと比較し、制約(変更不可、 null 禁止、Set の重複と Map のキー重複の禁止)、要素の順序、パフォーマンスを議論します。さらに、 Map.of のペアは 10 組までという制限や、代表的な例外 UnsupportedOperationException、 NullPointerException、 IllegalArgumentException も確認します。加えて、これらのコレクションが設計を簡素化し、読み取りのスレッドセーフ性を高める実用例も紹介します。
    利用可能
  • Map.copyOf、Set.copyOf とその他のユーティリティ

    JAVA 25 SELF
    レベル 34,レッスン 1
    この講義では、Java 10 で導入されたコレクションの不変コピーである List.copyOf、 Set.copyOf、 Map.copyOf を解説します。これらが Collections.unmodifiable* のラッパーとどう違うのか、どのような制約があるのか( null の禁止、不変性)、同じオブジェクトが返されるケース、そして具体的な実装に依存してはいけない理由を学びます。実用的な利用シナリオと典型的なミスも示し、 Map.of と Map.ofEntries の取り違えも含めて説明します。
    利用可能
  • CopyOnWrite コレクション、unmodifiable ラッパー

    JAVA 25 SELF
    レベル 34,レッスン 2
    この講義ではコレクションを「保護」する2つのアプローチを扱います: Collections.unmodifiable* による不変ラッパーと、 List.of/ Set.of/ Map.of のファクトリーメソッド。さらに、 java.util.concurrent パッケージのスレッドセーフな CopyOnWriteArrayList と CopyOnWriteArraySet も取り上げます。ラッパーと真の不変性の違い、CopyOnWrite 構造が役立つ場面、そして実務でよくある誤りを理解しましょう。
    利用可能
  • Mutable と Immutable のコレクション: 違いと使い分け

    JAVA 25 SELF
    レベル 34,レッスン 3
    この講義では、Java における可変(mutable)コレクションと不変(immutable)コレクションの違いを解説します。いつ ArrayList/ HashSet を選ぶべきか、そしていつ Java 9+ のファクトリーコレクション( List.of、 Set.of、 Map.of)や copyOf によるコピーを使うべきか。安全性、スレッドセーフティ、デバッグのしやすさ、 Collections.unmodifiableList ラッパーの落とし穴と実用的な使用例、さらに典型的なミスとその回避方法を取り上げます。
    利用可能
  • 新しいコレクション: SequencedCollection, SequencedSet, SequencedMap

    JAVA 25 SELF
    レベル 34,レッスン 4
    Java 21 で順序付きコレクションのインターフェース — SequencedCollection、 SequencedSet、 SequencedMap が導入されました。これらは要素の順序を扱うための統一的な契約を追加し、先頭/末尾要素への高速アクセスや reversed() による逆順ビューを提供します。本講義では、どの標準コレクションが既に実装しているか、どんなメソッドが追加されたか、実際のコードでの活用方法に加え、ありがちなミスや使用上の注意点を解説します。
    利用可能
  • java.io と java.nio の基礎:違いと API の進化

    JAVA 25 SELF
    レベル 35,レッスン 0
    この講義は、Java におけるファイル入出力の進化を俯瞰する短いガイドです。「古典的」なパッケージ java.io( File クラス、 FileInputStream/ FileOutputStream のストリーム、文字向けの Reader/ Writer)から、現代的な java.nio.file(NIO.2。 Path、 Files、 FileSystem)へと至る流れを扱います。両者のアプローチの違い、どこで非同期 I/O が効くのか、安全な移行方法( File . toPath() ⇄ Path . toFile())、そして実用例、API 選択の早見表、よくあるミスまで解説します。
    利用可能
  • File、Path、Files クラス:概要とオブジェクトの作成

    JAVA 25 SELF
    レベル 35,レッスン 1
    この講義では、Java のファイル API における3つの主要な要素を扱います。歴史的な File、NIO.2 のパス抽象である Path、そしてユーティリティの「スイスアーミーナイフ」 Files クラスです。実践として、オブジェクトの作成、 File ↔ Path の相互変換、 resolve による安全なパス結合、 relativize による相対パスの取得、 normalize による正規化、さらに Files.exists、 Files.copy、 Files.move、 Files.readAllLines/ Files.write といった操作を行います。最終目標は、各アプローチをいつ使うべきか、そしてよくあるエラーについて明確に理解することです。
    利用可能
  • ファイルの読み込みと書き込み: 基本操作

    JAVA 25 SELF
    レベル 35,レッスン 2
    この講義では、ユーティリティ java.nio.file.Files を使ってファイルを手早く扱う方法を解説します。ファイル全体の読み込み( readAllBytes、 readAllLines)と、明示的なエンコーディング StandardCharsets.UTF_8 を指定した書き込み( write)を扱います。例外 IOException の処理を説明し、実用例を示し、いつストリーム API( BufferedReader、 BufferedWriter)が必要か、そして典型的なミスについても解説します。
    利用可能
  • ファイル操作モード: 読み取り、書き込み、追記

    JAVA 25 SELF
    レベル 35,レッスン 3
    この講義では、Java におけるファイル操作モード(上書きと追記)、 StandardOpenOption のオプション組み合わせ(例: APPEND、 CREATE、 TRUNCATE_EXISTING、 CREATE_NEW)、 Files.write()/ Files.readAllBytes() を使ったテキスト/バイトの扱い、ストリーム( BufferedReader/ BufferedWriter)を選ぶべきタイミング、そして例外( IOException など)の正しい処理方法を解説します。実践的なサンプルが豊富で、ありがちな誤りも丁寧に取り上げます。
    利用可能
  • ディレクトリの操作:作成、削除、内容の一覧表示

    JAVA 25 SELF
    レベル 35,レッスン 4
    java.nio.file を使ったファイルシステム操作の実践講義です。 Files.createDirectory と Files.createDirectories でディレクトリを作成し、 Files.delete と Files.deleteIfExists で削除、 Files.list で内容を一覧し、 Files.walkFileTree で再帰的な削除を解説します。ステップごとのサンプル、ミニファイルマネージャー、そして典型的なミスの解説によって、あらゆる OS でディレクトリを自信を持って扱えるようになります。
    利用可能
  • BufferedReader, BufferedWriter: バッファリングと利点

    JAVA 25 SELF
    レベル 36,レッスン 0
    ファイルを「ティースプーン」で読み書きするとなぜコストが高いのか。バッファリングがJavaのテキストI/Oをどのように高速化するかを解説します。 BufferedReader と BufferedWriter が FileReader/ FileWriter の上にどのように構築されているかを見て、 readLine() による行単位の読み取り、 write()/ newLine() による書き込みと改行、 flush() による明示フラッシュ、バッファサイズの指定、 InputStreamReader/ OutputStreamWriter を通した文字エンコーディングの扱いを確認します。バッファリングを使うべきとき、使うべきでないとき、そしてよくあるミスについても説明します。
    利用可能
  • 1
  • ...
  • 15
  • 16
  • 17
  • 18
  • 19
  • ...
  • 30
学ぶ
  • 登録
  • Javaコース
  • 課題のサポート
  • 料金
  • ゲームプロジェクト
  • Java構文
コミュニティ
  • ユーザー
  • 記事
  • フォーラム
  • チャット
  • 成功事例
  • アクティビティ
  • アフィリエイトプログラム
会社情報
  • 私たちについて
  • 連絡先
  • レビュー
  • プレスルーム
  • CodeGym for EDU
  • よくある質問
  • サポート
CodeGymCodeGym は、ゼロからJavaプログラミングを学ぶためのオンラインコースです。このコースは初心者がJavaを習得するのに最適です。即時検証付きの1200以上の課題と、Java基礎理論の必要な範囲を含みます。学習の成功を支援するために、クイズ、コーディングプロジェクト、効率的な学習に関するコンテンツ、Java開発者のキャリアに関する機能など、一連のモチベーション機能を導入しています。
フォローする
インターフェース言語
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands
日本語
한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
「プログラマーは生まれるのではなく、育てられる」 © 2026 CodeGym
MastercardVisa
「プログラマーは生まれるのではなく、育てられる」 © 2026 CodeGym