020 コレクションフレームワーク(QueueとDeque) 024 問題

問題

以下の要件に基づいて、Deque インターフェースを実装したクラス CustomDeque を作成してください。

  1. addFirst メソッド: デックの先頭に要素を追加します。
  2. addLast メソッド: デックの末尾に要素を追加します。
  3. removeFirst メソッド: デックの先頭から要素を取り出し、取り出した要素を返します。デックが空の場合は例外をスローしてください。
  4. removeLast メソッド: デックの末尾から要素を取り出し、取り出した要素を返します。デックが空の場合は例外をスローしてください。
  5. isEmpty メソッド: デックが空かどうかを判定します。

ヒント

  1. データ構造の選定:
    • デックの実装には、内部的にどのようなデータ構造を使用するかが重要です。
    • Javaの標準ライブラリでは、LinkedList がデックの実装に適しています。LinkedList は先頭と末尾への要素の追加と取り出しが効率的です。
  2. メソッドの実装:
    • addFirst メソッドでは、デックの先頭に要素を追加します。
    • addLast メソッドでは、デックの末尾に要素を追加します。
    • removeFirst メソッドでは、デックの先頭から要素を取り出します。デックが空の場合は例外をスローします。
    • removeLast メソッドでは、デックの末尾から要素を取り出します。デックが空の場合は例外をスローします。
    • isEmpty メソッドでは、デックが空かどうかを判定します。
  3. JavaのDequeインターフェース:
    • Javaの標準ライブラリにはDequeインターフェースが提供されています。このインターフェースを実装することで、デックの基本的な機能を提供できます。
  4. 例外の取り扱い:
    • メソッド内でデックが空の場合に例外をスローする必要があります。Javaでは NoSuchElementException が該当します。

これらのヒントをもとに、CustomDequeクラスを実装してみてください。

解答例

「020 コレクションフレームワーク」問題集リスト