JavaのQueue

Java本格入門を読んでいたら、Queueを実現できるインターフェースがあった。

Queue(キュー)とは

先入れ先出しで値を出し入れするコレクションのこと。

スレッドセーフなので、マルチスレッドを考慮する必要がある。

public class Main {
    
    public static void main(String[] args) {
        //初期化
        Queue<Integer> q = new ArrayBlockingQueue<>(3);

        //値の追加
        q.offer(3);
        q.offer(1);
        q.offer(3);
        q.offer(5);
        System.out.println(q);
        //-> [1, 1, 3]
        //初期化の時にサイズを3にしたので、5は入らない。
        //値の重複はOK

        // 値の取得(キュー内からは削除)
        System.out.println(q.poll());
        //-> 3
        System.out.println(q);
        //-> [1, 3]

        //値の取得(キュー内から削除しない)
        System.out.println(q.peek());
        //-> 1
        System.out.println(q);
        //-> [1, 3]
    }
}
まとめ

はじめて見た。
使い所はわからないが、便利そう。
ただ、マルチスレッドの際にいろいろ考慮しないと事故りそうな気がする。

これからの仕事の中でどのようにQueueが使われているか見ていきたい。