【Java入門】Dequeでスタックを使う方法(push/pop/peek)

こんにちは!エンジニアの中沢です。

Javaには後入れ先出しのLIFO(Last In First Out)でデータを使用するための「Deque」があります。

後に入れたデータを先に出すことができるので、上手く活用してください。

この記事では、

・Dequeとは
・Dequeの使い方
・値を追加する方法(push)
・値を取り出す方法(pop)

という基本的な内容から、

・値を参照する方法(peek)
・Queue(キュー)の使い方

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、「Deque」の使い方をわかりやすく解説します!

なお、Javaの記事については、こちらにまとめています。

目次

Dequeとは

Deque(デック)とは、後に入れたデータを先に取り出す仕組みのLIFO(Last In First Out)を使うためのものです。

後に追加したデータから順番に取り出して使用したい場合に使います。

先に入れたものを先に取り出す仕組みはキューと呼ばれます。

Dequeの使い方

値を追加する方法(push)

ここでは、スタックに値を追加する方法を解説します。

スタックに値を追加するには、pushメソッドの引数に追加したい値を指定します。

スタックに追加した値の順番は、最初に追加したものが最後になります。

次のプログラムで確認してみましょう。

import java.util.ArrayDeque;
import java.util.Deque;

public class Main {

    public static void main(String[] args) {

        Deque<String> deque = new ArrayDeque<>();
        
        deque.push("sa");
        deque.push("mu");
        deque.push("ra");
        deque.push("i");
        
        System.out.println(deque);

    }

}

実行結果:

[i, ra, mu, sa]

このようにして、値を追加することができました。

値を取り出す方法(pop)

ここでは、スタックから値を取り出す方法を解説します。

スタックから値を取り出すには、popメソッドを使います。

取り出した値は削除されるので注意が必要です。

次のプログラムで確認してみましょう。

import java.util.ArrayDeque;
import java.util.Deque;

public class Main {

    public static void main(String[] args) {

        Deque<String> deque = new ArrayDeque<>();

        deque.push("sa");
        deque.push("mu");
        deque.push("ra");
        deque.push("i");

        System.out.println(deque.pop());
        System.out.println(deque);

    }

}

実行結果:

i
[ra, mu, sa]

このようにして、値を取り出すことができました。

取り出した値は削除されていることが確認できます。

値を参照する方法(peek)

ここでは、スタックの値を参照する方法を解説します。

スタックの値を参照するには、peekメソッドを使います。

参照した場合には、値は削除されません。

次のプログラムで確認してみましょう。

import java.util.ArrayDeque;
import java.util.Deque;

public class Main {

    public static void main(String[] args) {

        Deque<String> deque = new ArrayDeque<>();
        
        deque.push("sa");
        deque.push("mu");
        deque.push("ra");
        deque.push("i");
        
        System.out.println(deque.peek());
        System.out.println(deque);

    }

}

実行結果:

i
[i, ra, mu, sa]

このようにして、値を参照することができました。

参照した値は削除されていないことが確認できます。

Queue(キュー)の使い方まとめ

先に入れたデータを先に取り出す仕組みのFIFO(First In First Out)はキューと呼ばれます。

Queue(キュー)の使い方についてはこちらの記事で詳しく解説しているので、ぜひ確認してください。

まとめ

いかがでしたか?

今回は「Deque」の使い方を解説しました。

後に入れたデータを先に出すことができるので、ぜひ活用してくださいね。

もし、Dequeの使い方を忘れてしまったらこの記事を確認してください!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次