5分钟上手deque:npm安装、创建与push/shift基本操作的简单教程
2026/8/26 14:51:11 网站建设 项目流程

5分钟上手deque:npm安装、创建与push/shift基本操作的简单教程

【免费下载链接】dequeExtremely fast double-ended queue implementation项目地址: https://gitcode.com/gh_mirrors/de/deque

deque 是一个极速的 JavaScript 双向队列(double-ended-queue)实现,基于循环缓冲区构建,pushshiftget等所有操作都是 O(1) 常数时间。通过 npm 安装后,你可以用它替代数组来做队列、栈或随机访问场景,性能远超原生数组的shift。下面带你 5 分钟完成安装、创建与基本操作 🚀

为什么不用数组?deque 快在哪里 🤔

原生数组的shift()unshift()O(N) 线性时间——队列有 1000 个元素时,就比 deque 慢约 1000 倍;10000 个元素时慢 10000 倍。

而 deque 的底层是一个GC 友好、CPU 缓存友好的循环缓冲区(circular buffer),每个队列操作均为常数O(1),连.get()随机访问也是 O(1)。

官方基准测试数据(摘自 README.md):

场景double-ended-queue原生数组
队列含 1000 个元素约 1553 万 ops/sec约 650 万 ops/sec
队列含 200 万个元素约 1443 万 ops/sec约 19 ops/sec

可以看到:数据量越大,原生数组的退化越恐怖 ⚡

npm 一键安装 deque(最快配置方法)

打开终端,执行一条命令即可安装:

npm install double-ended-queue

包名在 package.json 中已声明为double-ended-queue,入口文件为 js/deque.js。

创建 deque 队列的 3 种方式

var Deque = require("double-ended-queue"); // 方式 1:空队列(初始容量 16) var dq1 = new Deque(); // 方式 2:用数组初始化 var dq2 = new Deque([1, 2, 3, 4]); // 方式 3:指定初始容量,避免运行时扩容开销 var dq3 = new Deque(100);

💡 如果你预先知道队列的最大规模,推荐用new Deque(capacity),可以省去运行期昂贵的扩容操作。容量上下限定义在 src/constants.js 中。

push 与 shift 基本操作:队尾入、队头出

双向队列的核心玩法就是两端都能进、都能出

方法作用别名
push(...items)从队尾添加元素enqueueinsertBack
unshift(...items)从队头添加元素insertFront
pop()取出并移除队尾元素removeBack
shift()取出并移除队头元素removeFrontdequeue
get(index)O(1) 随机访问(支持负索引)
peekFront()/peekBack()只查看队头/队尾,不移除
toArray()/isEmpty()/clear()转数组 / 判空 / 清空

一个最典型的使用示例:

var deque = new Deque([1, 2, 3, 4]); deque.push(5); // 队尾添加 → [1,2,3,4,5] deque.pop(); // 取出队尾 → 5 deque.unshift(0); // 队头添加 → [0,1,2,3,4] deque.shift(); // 取出队头 → 0 deque.get(0); // 随机访问队头 → 1 deque.get(-1); // 负索引访问队尾 → 4

如果队列是空的,pop()shift()会返回undefined,使用前可以用.lengthisEmpty()检查。

把 deque 当普通队列用

如果你只需要"先进先出"的普通队列,deque 也提供了专门别名:

deque.enqueue("task1", "task2"); // 入队 var task = deque.dequeue(); // 出队 → "task1"

项目源码结构一览

文件说明
src/deque.js核心实现(push/pop/shift/get 等)
src/constants.js容量上限/下限常量
js/deque.jsnpm 发布入口文件
test/deque.js单元测试用例
benchmark/two_million.js200 万元素性能基准脚本

想验证性能时,可以克隆仓库后运行npm install,再执行bench脚本复现官方测试(详见 benchmark/thousand.js)。

小结 ✅

  • 安装npm install double-ended-queue一条命令搞定
  • 创建:支持空队列、数组初始化、指定容量三种方式
  • 操作push/unshift两端添加,pop/shift两端取出,全部 O(1)
  • 优势:对比原生数组shift,大数据量下性能领先数个数量级

5 分钟,你现在已经掌握了 deque 的双向队列基本用法,可以放心用它替换数组来构建高性能队列啦 🎉

【免费下载链接】dequeExtremely fast double-ended queue implementation项目地址: https://gitcode.com/gh_mirrors/de/deque

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询