/** * ドメイン非依存URL出力フィルタ * javadrill.tech移行時はwp_options.home/siteurlのみ変更すればよい * * データベースには絶対URL(https://minner.asia)を保持し、 * 表示時に現在のドメイン(home_url())に動的変換する */ function javadrill_make_urls_dynamic($content) { if (empty($content)) { return $content; } // データベース内の絶対URLを現在のhome_url()に置換 $old_url = 'https://minner.asia'; $new_url = untrailingslashit(home_url()); // http版も対応(念のため) $content = str_replace($old_url, $new_url, $content); $content = str_replace('http://minner.asia', $new_url, $content); return $content; } // 投稿本文、ウィジェット、タームの説明、抜粋に適用 add_filter('the_content', 'javadrill_make_urls_dynamic', 20); add_filter('widget_text', 'javadrill_make_urls_dynamic', 20); add_filter('term_description', 'javadrill_make_urls_dynamic', 20); add_filter('get_the_excerpt', 'javadrill_make_urls_dynamic', 20); 020 コレクションフレームワーク(QueueとDeque) 026 解答例 | Javaドリル

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

020-026 020 コレクションフレームワーク
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.NoSuchElementException;

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

    private ArrayDeque<T> boundedDeque; // 内部で使用する ArrayDeque インスタンス
    private int maxSize; // デックの最大容量

    // コンストラクタ
    public CustomBoundedDeque(int maxSize) {
        if (maxSize <= 0) {
            throw new IllegalArgumentException("Maximum size should be greater than 0");
        }
        this.boundedDeque = new ArrayDeque<>();
        this.maxSize = maxSize;
    }

    // デックの先頭に要素を追加するメソッド
    @Override
    public void addFirst(T element) {
        // デックのサイズが最大容量に達した場合、末尾の要素を削除
        if (boundedDeque.size() == maxSize) {
            boundedDeque.removeLast();
        }
        // 先頭に要素を追加
        boundedDeque.addFirst(element);
    }

    // デックの末尾に要素を追加するメソッド
    @Override
    public void addLast(T element) {
        // デックのサイズが最大容量に達した場合、先頭の要素を削除
        if (boundedDeque.size() == maxSize) {
            boundedDeque.removeFirst();
        }
        // 末尾に要素を追加
        boundedDeque.addLast(element);
    }

    // デックの先頭から要素を取り出すメソッド
    @Override
    public T removeFirst() {
        // デックが空の場合、例外をスロー
        if (isEmpty()) {
            throw new NoSuchElementException("Deque is empty");
        }
        // 先頭の要素を取り出して返す
        return boundedDeque.removeFirst();
    }

    // デックの末尾から要素を取り出すメソッド
    @Override
    public T removeLast() {
        // デックが空の場合、例外をスロー
        if (isEmpty()) {
            throw new NoSuchElementException("Deque is empty");
        }
        // 末尾の要素を取り出して返す
        return boundedDeque.removeLast();
    }

    // デックが空かどうかを判定するメソッド
    @Override
    public boolean isEmpty() {
        return boundedDeque.isEmpty();
    }

    // 以下は Deque インターフェースの他のメソッドに対する実装が必要ですが、この例では省略しています。
    // 必要に応じて実装してください。
}

この解答例では、ArrayDeque を使用してデックを実装し、指定された最大容量に達した場合に適切に要素を削除してから追加しています。

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

コメント

タイトルとURLをコピーしました