Scala(或Java)中的自适应映射保留插入顺序

Ale*_*ets 8 java collections scala

我想找到并重用(如果可能的话)具有以下属性的map实现:

  1. 虽然条目数很少,比如<32,但是底层存储应该在这样的数组中完成[key0,val0,key1,val1,...]这种存储方案可以避免许多小的Entry对象并提供极快的查找速度(即使它们是顺序扫描!)在现代CPU上由于CPU的缓存未被无效以及缺少指针间接到堆中.

  2. 无论与LinkedHashMap类似的条目数如何,映射都应保持键/值对的插入顺序

我们正在研究Scala中大量(数百万个节点/边缘)图形的内存表示,并且使用这样的Map可以让我们以更高效的方式存储节点/边缘属性以及每个节点的边缘,达到99%具有少量属性或邻居的节点和边缘的+,同时保留属性和边缘的按时间顺序的插入顺序.

如果有人知道具有这些特征的Scala或Java地图,我将非常感激不尽.

感谢名单

Ada*_*ler 0

在java下你可以维护一个二维数组(电子表格)。我编写了一个程序,它基本上定义了一个包含 3 列数据和 3 列用于查找数据的 2 d 数组。三列是 testID、SubtestID 和 Mode。这使我基本上可以通过 testid 和模式或任何组合查找值,或者我也可以通过静态放置进行引用。该表在启动时加载到内存中并由程序引用。它是无限可扩展的,可以根据需要添加新的值。

如果您有兴趣,我今晚可以发布一个代码源示例。

另一个想法可能是在程序中维护一个数据库。数据库旨在组织大量数据。