Node JS,传统的数据结构?(如Set等),任何类似Java.util的node

Node JS, traditional data structures? (such as Set, etc), anything like Java.util for node?

本文关键字:任何类 Java util node 传统 JS 数据结构 Node Set      更新时间:2023-09-26

我喜欢nodeJS,来自Java背景,我甚至有兴趣在一些node看起来有点吃力的项目中试用它,比如搜索引擎项目。

有一件事我有点困惑,那就是JavaScript似乎缺乏传统的数据结构,例如一个集合,它的精确定义甚至超出了计算机科学,因为它在计算机存在之前就已经在数学中使用过(基本上是一个不允许重复的列表)。当使用nodeJS时,似乎没有像Java.util这样的库拥有我已经习惯的这些基本数据类型,我意识到我可以自己创建它们,但这只会给项目增加更多的开销。

有没有针对node(或者一般的JavaScript)的库来解决这个问题?我认为node有很大的潜力在很多项目中取代Java这样的语言,因为它在开发速度方面有很多优势,但对于一个小项目来说,必须在更成熟的平台中重新创建被视为理所当然的数据结构可能会带来太多开销。

如果还有其他类似的问题,我很抱歉,但我花了一些时间搜索,没有找到太多。

es6有一个内置的Set类:

new Set([iterable]);

请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set

Collections.js有列表、映射、队列、集合和堆,所有这些都具有一致的接口。Github。

JavaScript似乎缺少传统的数据结构。。。

是的,这就是javascript,数据结构的概念和实现与Java等语言截然不同。

我不确定你是否真的能用Javascript找到你想要的东西。然而,有一些像underscore这样的库应该可以更容易地构建您想要的结构类型。

node.js没有SetMap对象这一点不再成立。node.js从最新的v12开始就有了它们。

当然,如果您想要像javahas这样的库,请检查npm或github。您不局限于node.js.

中的标准配置

你研究过Undercore.js吗?http://underscorejs.org/

它不是java.util的一对一,但它提供了一系列常用的实用程序函数。

作为Undercore.js的一个更轻、更快的替代品,Lo Dash(http://lodash.com/)那些日子越来越有吸引力。。。但这不是Java.util!:-)

看看这个:https://github.com/chenglou/data-structures

我认为它符合你的要求。

js-sdsl

一个基于C++STL的javascript标准数据结构库。

该库具有严格的时间复杂性保证,可以放心使用。

最新的测试版包括迭代器函数,这些函数可以像c++中的迭代器一样使用。

包含的数据结构

  • 矢量
  • 堆栈
  • 队列
  • 链接列表
  • Deque
  • 优先级队列
  • Set(使用RBTree)
  • 地图(使用RBTree)
  • HashSet(仅供参考)
  • HashMap(仅供参考)

用法

为了帮助您更好地使用,我们提供此API文档。