020 コレクションフレームワーク(QueueとDeque) 024 解答例

import java.util.LinkedList;
import java.util.NoSuchElementException;

public class CustomDeque<T> implements Deque<T> {

    private LinkedList<T> deque;

    public CustomDeque() {
        this.deque = new LinkedList<>();
    }

    @Override
    public void addFirst(T element) {
        deque.addFirst(element);
    }

    @Override
    public void addLast(T element) {
        deque.addLast(element);
    }

    @Override
    public T removeFirst() {
        if (isEmpty()) {
            throw new NoSuchElementException("Deque is empty");
        }
        return deque.removeFirst();
    }

    @Override
    public T removeLast() {
        if (isEmpty()) {
            throw new NoSuchElementException("Deque is empty");
        }
        return deque.removeLast();
    }

    @Override
    public boolean isEmpty() {
        return deque.isEmpty();
    }
}

この解答例では、addFirstaddLastremoveFirstremoveLastisEmpty の各メソッドを実装しています。実際の使用に応じてジェネリクス T を調整することができます。なお、このクラスは LinkedList を利用しているため、リンクドリストにおける追加と削除の操作が適用されます。

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