2013-02-14 62 views
3

Java有點新鮮。在相當成功之前,我已經使用了各種Java集合(treeset,hashmap,arraylist)。我的問題類似於類似Facebook的網絡。我在會員組織中擁有不同的用戶,並且我想爲我們的會員中的每個人存儲一個集合,其他成員通過興趣鏈接到此成員。我認爲最簡單的解決方案將是爲每個成員動態地分配一個名稱爲新的簡單集合,這些成員將有其他成員名稱(現有的或新的)鏈接,但是看起來Java不允許動態分配新集合。Java社交網絡節點收集解決方案

我可以在哈希映射中列出所有與鍵名相關的名字,但這似乎是一個令人反感的解決方案。我認爲這是一個具有優雅解決方案的社交常見網絡問題。建議?

+1

「_JAVA不允許新collections_的動態分配」 ** **錯誤。此外,你正在尋找一個圖形結構。搜索維基百科的。 – jlordo 2013-02-14 22:19:21

回答

0

你爲什麼不把它建模成圖形?

class Node { 
    private String name; 
    // TODO: Write your getters/setters. 
} 

class Edge { 
    private Edge source, destination; 
    // TODO: Write your getters/setters. 
} 

List<Node> nodes = new ArrayList<Node>(); 
List<Edge> edges = new ArrayList<Edge>(); 

然後,如果你遇到一個關係,你可以做到以下幾點:

Node alice = new Node("Alice Kentucky"); 
if (!nodes.contains(alice)) { nodes.add(alice); } 
edges.add(new Edge(bob, alice)); // where Bob is already in the node list