问题标签 [data-structures]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
6331 浏览

xml - 将 XML 数据转换为强 Flex 类型

我正在进行的一个项目将从网络服务器中提取 XML 并从中构建数据存储。数据将具有某些核心字段,但需要可扩展......例如,我有一个,以后可能想要添加额外的字段。

在 Flex 应用程序中,我不希望中央数据存储处理 XML 对象或只是将属性放入对象中。我想要有强类型,例如 Person 类,它是从 XML 创建/填充的。

如何以灵活的方式做到这一点?如果属性名称匹配,Flex 是否能够从 XML 自动构建 Person,或者我是否需要为 、 等编写转换功能?

0 投票
3 回答
13785 浏览

database - 如何在文件系统中存储图像

目前,我将图像(最大 6MB)作为 BLOB 存储在 InnoDB 表中。随着数据量的增长,每晚备份的速度越来越慢,阻碍了正常的性能。

因此,二进制数据需要进入文件系统。(指向文件的指针将保存在数据库中。)

数据具有树状关系:

现在我希望数据通过目录结构均匀分布。我应该如何做到这一点?

我想我可以尝试MD5('userId, albumId, imageId');对结果字符串进行切片以获取我的目录路径:

这将允许我将第一个字符映射到服务器并将目录结构均匀地分布在多个服务器上。

然而,这不会保持每个用户的图像组织,可能会将 1 个相册的图像分布在多个服务器上。

我的问题是:
将图像数据以平衡的方式存储在文件系统中,同时将用户/相册数据保存在一起的最佳方法是什么?

我在思考正确的方向吗?或者这完全是错误的做事方式?

更新:
我将md5(user_id)在最高级别进行字符串切片。然后将所有用户数据放在同一个桶中。这将确保数据的均匀分布,同时将用户数据存储在一起。

我想我会使用从后面拆分的 albumId(我喜欢这个主意!)以保持每个目录的专辑数量更小(尽管对于大多数用户来说这不是必需的)。

谢谢!

0 投票
4 回答
3282 浏览

c++ - 可以realloc Array,那为什么要用指针呢?

这是我面临的一次求职面试。他们问我们是否可以重新分配数组,我说可以。然后他们问 - 为什么我们需要指针,因为大多数人给出了它浪费内存空间的理由。我无法给出满意的答复。如果任何机构能给出满意的答复,我将不胜感激。请提及与上述陈述可能相矛盾的任何情况。

谢谢你。

0 投票
6 回答
62421 浏览

c# - 使用 LINQ 保持顺序

我在有序数组上使用 LINQ to Objects 指令。我不应该执行哪些操作来确保数组的顺序没有改变?

0 投票
15 回答
238770 浏览

c++ - 为什么 C++ STL 不提供任何“树”容器?

为什么 C++ STL 不提供任何“树”容器,而最好使用什么?

我想将对象的层次结构存储为树,而不是使用树作为性能增强...

0 投票
8 回答
4415 浏览

database-design - 单个维度内不重叠范围的数据结构

我需要一个可以在单个维度内存储非重叠范围的数据结构。不需要完全覆盖整个尺寸范围。

一个例子是会议室调度程序。维度是时间。没有两个时间表可以重叠。会议室并不总是安排好的。换句话说,对于给定的时间,最多可以有一个时间表。

一个快速的解决方案是使用一个范围来存储开始和结束时间。

这是非规范化的,需要容器强制不重叠。对于两个相邻的范围,前一个结束将与下一个开始冗余。

另一种方案可能涉及为每个范围存储一个边界值。但是对于连续的范围序列,边界值总是比范围多一个。为了解决这个问题,序列可以表示为交替的边界值和范围:

B = 边界值,r = 范围

溴化溴

数据结构可能如下所示:

从本质上讲,它是一个具有交替类型的双向链表。

最终,我使用的任何数据结构都将在内存(应用程序代码)和关系数据库中表示。

我很好奇存在哪些学术或行业尝试过的解决方案。

0 投票
7 回答
34115 浏览

c# - 将 C# 数据结构存储到 SQL 数据库中

我是 ASP.NET 和 SQL 服务器世界的新手,所以请原谅我的无知...

如果我在 C# 中有一个数据结构(例如,让我们说一个存储一些字符串的向量),是否可以像在 SQL 表中一样存储向量的内容?我想这样做,以便尽可能快地将数据转换回矢量形式,而不必逐个元素地构造它。几乎就像将二进制数据写入文件,然后读取它并将其复制到 C 中分配的结构中。

我在 SQL Server 2008 上创建了一个表,其中一个字段被定义为 VARBINARY(MAX)。我以为我会从那开始。

有人可以向我展示一个示例,说明我将如何在该字段中存储和检索例如 10 个字符串的向量?这甚至可能吗(我想不出为什么不)?

谢谢!

0 投票
6 回答
804 浏览

perl - 如何创建数据结构的可重复签名?

我有一种情况,我想创建数据结构的签名:

目标应该是,如果数据结构发生变化,那么签名也应该如此。

有没有既定的方法来做到这一点?

0 投票
21 回答
130160 浏览

java - 你将如何在 Java 中实现 LRU 缓存?

请不要说 EHCache 或 OSCache 等。出于这个问题的目的,假设我想只使用 SDK 来实现我自己的(边做边学)。鉴于缓存将在多线程环境中使用,您将使用哪些数据结构?我已经使用LinkedHashMapCollections#synchronizedMap实现了一个,但我很好奇是否有任何新的并发集合会是更好的候选者。

更新:当我发现这个金块时,我正在阅读Yegge 的最新消息:

如果您需要恒定时间的访问并希望维护插入顺序,那么最好的方法就是 LinkedHashMap,这是一种真正美妙的数据结构。唯一可能更精彩的方法是如果有一个并发版本。可惜。

在我使用上面提到的LinkedHashMap+实现之前,我的想法几乎完全相同。Collections#synchronizedMap很高兴知道我没有忽略一些事情。

根据到目前为止的答案,对于高度并发的 LRU,我最好的选择是使用一些相同的逻辑来扩展ConcurrentHashMapLinkedHashMap

0 投票
3 回答
7582 浏览

php - 是否有适用于 PHP/MySQL 的实体属性值 (EAV) 框架?

是否有适用于 PHP/MySQL 的实体属性值框架?我开始写我自己的,但我觉得它已经完成了。有什么建议么?