我有什麼實現在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