在内存中存储父子映射.要有效地列出父母的所有可到达的孩子

kri*_*hna 5 java algorithm graph data-structures

我在reational数据库中有父子映射,如下所示,

relationship_id | parent_id | child_id
1               | 100009    | 600009
2               | 100009    | 600010
3               | 600010    | 100008
Run Code Online (Sandbox Code Playgroud)

对于性能优化,我喜欢将所有这些映射保留在内存中.在这里,孩子将拥有多个父母,而父母则拥有2个以上的孩子.我猜,我应该使用"Graph"数据结构.

填充到内存中是一次性活动.我担心的是,当我要求列出所有孩子(不仅是直系孩子)时,应尽快归还.添加和删​​除很少发生.我应该使用什么数据结构和算法?

试过MultiHashMap,实现O(1)搜索时间,但它有更多的冗余.

Duk*_*ing 5

拥有父子关系的图形数据结构.每个GraphNode都可以有一个ArrayList孩子.

然后HashMap将映射ID映射到GraphNode.

你需要找出一些东西,这样你就不会创建一个循环(如果可能的话),这将导致无限循环.