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

レッスン

  • レビュー
  • 私たちについて
開始
学習開始
今すぐ学習を始める
  • 学習の進捗
  • コース
  • クエストマップ
  • レッスン
  • Set: HashSet と TreeSet、要素の一意性

    JAVA 25 SELF
    レベル 26,レッスン 3
    この講義では Java のインターフェース Set を解説します。 List との違い、要素の一意性がどのように保証されるか、実装である HashSet(高速・順序なし)と TreeSet(ソート済み)がどのように動作するか、そしてどちらを選ぶべきかを説明します。さらに、 equals() と hashCode() に関する重要な注意点、 null の扱い、典型的なタスク(重複の削除、一意性の確認)の例や、よくあるミスも取り上げます。
    利用可能
  • ジェネリクス: なぜ必要か、基本構文

    JAVA 25 SELF
    レベル 26,レッスン 4
    「生の」コレクションから型安全なコードへ。講義では、ジェネリクス導入前に Object ベースのコレクションがどのようにランタイムエラー( ClassCastException)を引き起こしていたか、ジェネリクスがそれをコンパイル時にどう解決するか、 List<String> や Map<String, Integer> のような構文の読み書き、「ダイアモンド演算子」 <>、型消去(type erasure)とは何かを解説します。さらに自作のジェネリッククラスの例や典型的なミスの分析も含みます。
    利用可能
  • インターフェース Collection, List, Set, Map: 階層構造

    JAVA 25 SELF
    レベル 27,レッスン 0
    Java のコレクションの基本を解説します: インターフェース Collection とその系統である List、 Set、 Queue/ Deque、さらに独立した階層である Map。なぜ Map は Collection を継承しないのか、階層がどうなっているか、実装の違い、主要なメソッド、どれをいつ選ぶべきかが分かります。最後に、よくあるミスとその回避方法も紹介します。
    利用可能
  • Iterable と Iterator: コレクションの走査

    JAVA 25 SELF
    レベル 27,レッスン 1
    この講義では、インターフェース Iterable と Iterator の扱い方を解説します。具体的には、 iterator() メソッドの役割、for-each ループが「裏側で」どのように動作するか、 hasNext() と next() をいつ・なぜ手動で使うのか、 ConcurrentModificationException を起こさずに remove() で安全に要素を削除する方法、さらに keySet()、 values()、 entrySet() を使って Map を正しく走査する方法を扱います。理解を深めるための実用的な例と、よくあるミスも多数取り上げます。
    利用可能
  • Queue, Deque, Stack: キューとスタックの操作

    JAVA 25 SELF
    レベル 27,レッスン 2
    この講義では Java のキューとスタックを解説します。どのように FIFO と LIFO の原理が働くのか、 Queue、 Deque、 Stack の違い、現代のプロジェクトで ArrayDeque を選ぶ理由、そして offer/ poll/ peek と push/ pop/ peek を安全に使う方法を扱います。 LinkedList、 PriorityQueue の例、印刷キューや undo スタックのミニアプリも示し、ありがちなミスも取り上げます。
    利用可能
  • NavigableSet/NavigableMap

    JAVA 25 SELF
    レベル 27,レッスン 3
    この講義では、Java の順序付きかつナビゲート可能なコレクションである NavigableSet と NavigableMap を解説します。実践では、 subSet/ headSet/ tailSet を使った範囲操作、「最も近い」要素を lower、 floor、 ceiling、 higher で探す方法、端を pollFirst/ pollLast で扱う方法を見ていきます。さらに、 descendingSet/ descendingMap の逆順ビュー、「ライブ」な view と典型的なユースケース(スケジュール、優先度、スケール)も取り上げます。実装としては TreeSet と TreeMap を使用します。
    利用可能
  • Generics wildcards

    JAVA 25 SELF
    レベル 27,レッスン 4
    この講義では、Java のジェネリクスにおける不変性、型パラメータの境界( extends/ super)、ワイルドカード型 ? と規則 PECS(「Producer Extends, Consumer Super」)を解説します。ワイルドカードを用いた汎用メソッドの書き方、型消去(type erasure)の仕組み、 instanceof や配列使用時の制約、さらにコレクションと Stream API を使った実践も扱います。最後に――よくあるミスとその回避方法をまとめます。
    利用可能
  • コレクション要素のフィルタリング

    JAVA 25 SELF
    レベル 28,レッスン 0
    本講義では、 Java におけるコレクションのフィルタリング実践を扱います: ループ for による命令的アプローチ、 Iterator とメソッド remove() を使ったイテレーション中の安全な削除、そして現代的で簡潔な removeIf(Java 8+)。なぜ ConcurrentModificationException が発生するのか、どの場面で新しいリストを作るべきか、さらにフィルタ条件の書き方でよくあるミスについて解説します。
    利用可能
  • コレクションの変換

    JAVA 25 SELF
    レベル 28,レッスン 1
    この講義では、命令型にコレクションを変換する方法を解説します。たとえば、 List<String> から List<Integer> を得る(文字列の長さなど)、ドメインモデルのオブジェクトからフィールドを取り出す( Product → 名前/価格)、 addAll() や入れ子のループでネストしたコレクションを「フラット化」する、さらに if や startsWith のようなメソッドを使ってフィルタリングと変換を組み合わせる方法です。最後に、典型的な落とし穴として、元のコレクションを変更してしまうこと、誤ったキャスト( ClassCastException)、効率性に関する注意点を取り上げます。
    利用可能
  • 要素の安全な削除

    JAVA 25 SELF
    レベル 28,レッスン 2
    実務では、コレクションから要素を削除するとしばしば ConcurrentModificationException が発生します。本講義では、なぜ for-each で走査するとそれが起きるのか、 Iterator.remove() による安全な削除、 ListIterator の有用性、 removeIf(Java 8+)を選ぶべき場面、そして Map を正しく扱う方法を解説します。最後に——実践的なヒントとよくある間違いも紹介します。
    利用可能
  • EnumSet/EnumMap

    JAVA 25 SELF
    レベル 28,レッスン 3
    この講義では、列挙型向けの特化コレクションである EnumSet と EnumMap(パッケージ java.util)を解説します。内部構造(ビットマスクと ordinal によるインデックス付け)、 HashSet/ HashMap と比べてなぜ高速かつコンパクトなのか、どこで使うべきか(フラグ、対応表、有限状態機械)、 enum の変更やシリアライズに伴う落とし穴、そしてベストプラクティスと典型的なミスを、分かりやすいコード例とともに紹介します。
    利用可能
  • LinkedHashSet/LinkedHashMap

    JAVA 25 SELF
    レベル 28,レッスン 4
    この講義では、順序を保持するコレクション: LinkedHashSet と LinkedHashMap を扱います。挿入順とアクセス順をどのように維持するか、 removeEldestEntry をオーバーライドするだけで数行で LRU キャッシュを構築する方法、 HashSet/ HashMap と比べたメモリと速度のコスト、安定したテストやレポートのために決定的な順序が必要になる場面、そしてキュー/スタック用途では LinkedList より ArrayDeque がなぜ適しているかを学びます。最後に、典型的なミスとその回避方法も紹介します。
    利用可能
  • 1
  • ...
  • 12
  • 13
  • 14
  • 15
  • 16
  • ...
  • 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