情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsでキューを使用する

キューを使用するにはBucketsパッケージのbuckets-jsモジュールのQueueクラスを使用します。

このクラスはキューの実装であり、下のような関数を提供します。

  • add・・・末尾に要素を追加します。第1引数に追加する要素を指定します。
  • clear・・・全ての要素を削除します。
  • contains・・・要素が含まれているか調べます。第1引数に要素を指定します。第2引数に要素が同一であるか判定するための関数を指定します。第2引数は指定しなくても構いません。
  • dequeue・・・先頭の要素を取得し、削除します。
  • enqueue・・・末尾に要素を追加します。第1引数に追加する要素を指定します。
  • equals・・・別のキューと内容が同一であるか調べます。第1引数にキューを指定します。第2引数に要素が同一であるか判定するための関数を指定します。第2引数は指定しなくても構いません。
  • forEach・・・それぞれの要素に対して処理を行います。第1引数に実行する処理を関数として指定します。
  • isEmpty・・・空のキューであるか調べます。
  • peek・・・先頭の要素を取得します。
  • size・・・要素の数を取得します。
  • toArray・・・全ての要素から成る配列を取得します。

サンプルコード1

Queueクラスの関数の使用例です。

buckets-js-queue.js

var bucketsJs = require('buckets-js');

var q = new bucketsJs.Queue();

print(q);

q.enqueue(0);
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);

print(q);

console.log(q.isEmpty());

console.log(q.size());

console.log(q.contains(0));
console.log(q.contains(10));

console.log(q.peek());
console.log(q.peek());

console.log(q.dequeue());
console.log(q.dequeue());

print(q);

q.clear();

print(q);

console.log(q.isEmpty());

console.log(q.size());

console.log(q.peek());

function print(q) {
    q.forEach(function (e) {
        console.log(e);
    });
}

使用パッケージ

  • Buckets
    npm install buckets-jsでインストールします。

実行結果

C:\work\node>node buckets-js-queue.js
0
1
2
3
false
4
true
false
0
0
0
1
2
3
true
0
undefined

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js