我有什么实现在Java中图形的是2个表:从数据库
Users (id, name, lastname)
Friends (id1, id2)
鉴于这2桌,我需要能够找到2个用户之间的距离D(ID1,ID2)
我定义了一个User类,它保存了表中的每个用户属性。
我需要建立一个图。我的数据结构图是
Map<User, Set<User>>
将用户映射到一组他的朋友。 我该如何构建图表?我查询了数据库中所有用户的ID的数据库。我得到一个
int[] userids
然后,对于每个该数组中INT:
(1)I建立一个用户对象,在该用户的分贝的属性取
(2)I查询在db朋友表以具有该用户的朋友的id:
int [] friends
(3)对每个在这个朋友阵列INT,我建立一个用户对象在该用户的分贝的属性取并添加它到
Set<User> friends = new Set<User>();
问题1:任何想法如何做到这一点更好?考虑到我有500个用户,并且在朋友表中有20000个条目,所以我们需要永远的考虑......
这里的一个大问题是当2个用户在数据库中是“相同的”时,他们被引用到不同的对象中我的图!
这是搞乱了我的距离算法。我从一个用户开始,得到他的朋友{f1,f2},并且当我想要使用graph.get(f1)和graph.get(f2)得到朋友的朋友时,我得到null(由于我的问题中陈述的原因,即1分贝用户在许多不同的用户对象)
我需要找到一种方法来建立我的图,使1给定用户说(1,约翰,Doe)在堆中的一个唯一的用户对象引用。 ..
问题2:怎么样?
谢谢你这么多
Help with Java Graph Implementation
如何将所有用户标识存储在一个集合中?那会照顾重复 – 2012-04-20 16:19:43