【发布时间】:2011-04-25 00:11:22
【问题描述】:
我需要在 Java 中实现一个 n:m 关系。 用例是一个目录。
- 一个产品可以属于多个类别
- 一个类别可以包含多个产品
我目前的解决方案是拥有一个包含两个哈希图的映射类。
- 第一个 hashmap 的键是产品 ID,值是类别 ID 列表
- 第二个 hashmap 的键是类别 ID,值是产品 ID 列表
这完全是多余的,我需要一个设置类来始终注意数据在两个哈希图中的存储/删除。
但这是我发现在 O(1) 中实现以下性能的唯一方法:
- 哪些产品属于某个类别?
- 产品属于哪些类别?
我想在各个方面都避免全阵列扫描或类似的事情。
但是必须有另一个更优雅的解决方案,我不需要对数据进行两次索引。
请点亮我。我只有纯 Java,没有数据库或 SQLite 或可用的东西。如果可能的话,我也不想实现 btree 结构。
【问题讨论】:
标签: java data-structures indexing hashtable hashmap