Java社交网络节点集合解决方案

Posted

技术标签:

【中文标题】Java社交网络节点集合解决方案【英文标题】:Java social networking node collection solution 【发布时间】:2013-02-14 22:17:20 【问题描述】:

对 Java 有点陌生。我之前非常成功地使用过各种 Java 集合(treeset、hashmap、arraylist)。我的问题类似于类似 Facebook 的网络。我在会员组织中有各种用户,我想为我们会员中的每个人存储一个集合,这些其他成员通过兴趣链接到该成员。我认为最简单的解决方案是为每个具有其他成员名称(现有或新)链接的成员按名称动态分配一个新的简单集合,但似乎 Java 不允许动态分配新集合。

我可以在哈希图中有一个串联的字符串,列出与键名关联的所有名称,但这似乎是一个错误的解决方案。我认为这是一个社交常见的类似网络的问题,有一个优雅的解决方案。建议?

【问题讨论】:

"Java 不允许动态分配新集合" 错误。此外,您正在寻找图形结构。搜索***。 【参考方案1】:

你为什么不把它建模成一个图呢?

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

【讨论】:

以上是关于Java社交网络节点集合解决方案的主要内容,如果未能解决你的问题,请参考以下文章

使用 javascript 库的社交网络图 [关闭]

第003期:社交网络数据和自然语言是一回事吗?| DeepWalk算法

奇异值分解 - 社交网络分析

[NOI 2007]社交网络

以概率最大化社交网络中的预期收益

《在线社交网络》