我有一个csv文件及其格式:
user1;user2;0.3
user1;user7;0.8
user2;user7;0.3
.....
user78;user36;0.1
每一行都有三个元素:user_1_ID,user_2_ID和类似的值。我想写一个算法来找到一定数量的用户之间的相互关系。例如,正如我们所看到的,user1与user2(user1; user2; 0.3)有关系,user7(user1; user7; 0.8),user2与user7有关系(user2; user7; 0.3) )。因此,如果我们想要找到哪些三个用户具有相互关系,我们应该找到user1-user2-user7。三只是一个例子,只要这种关系存在,它可能是五个,八个。愿有人给我一些关于如何编写这个算法的想法。任何数据结构都是可以接受的,并且更喜欢在java中实现它。
答案 0 :(得分:1)
class Node {
public static void main(String[] args) {
HashMap<String, Node> nodes = new HashMap<String, Node>();
try {
while (readLine()) {
String user1 = "user1";
String user2 = "user2" ;
int value = 1;
Node node1 = nodes.get(user1);
if (node1 == null) {
node1 = new Node("user1");
}
Node node2 = new Node("user2");
node1.getNodes().put(node2, value);
nodes.put("user1", node1);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public HashMap getNodes() {
return nodes;
}
public void setNodes(HashMap nodes) {
this.nodes = nodes;
}
public Node(String key) {
this.key = key;
}
private String key;
private HashMap nodes = new HashMap<Node, Integer>();
}