有效浏览多个列表/深层嵌套数据的方法

时间:2017-02-19 02:56:45

标签: java data-structures

我有一个用于表示 Person 对象的类。在每个Person对象中,有多个数组列表,包含例如friends,family和其他Person对象。我现在试图找出找到那个人的亲属的最​​佳方法。

例如:

A有B作为家庭...... B有X和Y作为家庭...... X有Z作为家庭......依此类推。

在上面的例子中,A将有4个家庭成员直到人Z.使用嵌套循环似乎是一个非常糟糕的想法,特别是如果数据非常大。建议更好的数据结构或解决这个问题的有效方法将是很好的。

2 个答案:

答案 0 :(得分:1)

好像你似乎正在尝试进行图遍历。查看深度优先搜索或广度优先搜索算法,看看是否可以转换这些算法以满足您的需求

答案 1 :(得分:0)

我建议使用这个http://algs4.cs.princeton.edu/41graph/Graph.java.html类,并根据您的数据实现DFS或BFS。对于这种情况,BFS可能更有效,看看这个

When is it practical to use DFS vs BFS?