用于存储双向关系的数据结构

时间:2014-04-27 13:08:00

标签: data-structures

我已经google了,无法找到任何DS来存储和读取O(1)时间内的双向数据。例如。书籍和作者。以书的名义,必须找到作者。以作者的名义,必须找到书籍。

如何在DB中存储像Join表这样的关系?

提前感谢。

2 个答案:

答案 0 :(得分:1)

这个想法是以下各项的结合:

  • 第一个元素到第二个元素(或它们的列表)的哈希映射
  • 第一个元素(或其列表)的第二个元素的哈希映射

Hash maps给出预期的O(1)查找。

我不相信数据库通常使用哈希映射,据我所知更常见的是b-trees(给出O(log n)性能)。

答案 1 :(得分:1)

扩展Dukeling的答案,我相信Google有一个名为HashBiMap的实现:http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/HashBiMap.html