很少知道如何从生成的节点获取边数。
private TreeMap<Node, Set<Node>> nodeToNeighbours;
添加边缘类
public void addEdge(Node node1, Node node2) {
nodeToNeighbours.put(node2, new TreeSet<Node>());
nodeToNeighbours.put(node1, new TreeSet<Node>());
}
这是我被困住了。我需要演员吗?
public int getNumEdges() {
//TreeSet<Node> x = new nodeToNeighbours.get(node1);
return x;
}
答案 0 :(得分:0)
如果您想要地图的大小(映射了多少个对象),请尝试:
public int getNumEdges() {
int x=nodeToNeighbours.size();
return x;
}
如果您想要在Map中映射的对象集合
nodeToNeighbours.values();
您还可以从值集合中获取大小
Collection<Object> objectCollection=nodeToNeighbours.values();
int s=objectCollection.size();
答案 1 :(得分:0)
TreeSet<Node> x = nodeToNeighbours.get(node1);
这将为您提供关键节点1的TreeSet值。
调用x.getSize()将为您提供该节点的边数,假设您已在树集中注册了节点的所有边,然后使用node1作为键将其添加到nodeToNeighbours。
我认为你可能正在寻找的是......
public Integer getNumEdges() {
final TreeSet<Node> x = nodeToNeighbours.get(node1);
return x.getSize();
}
答案 2 :(得分:0)
如果您想要获得size
的{{1}},请使用此类内容。
TreeMap
它会为您提供public int getNumEdges() {
return nodeToNeighbours.size();
}
的大小。
答案 3 :(得分:0)
您可以使用以下代码
获取边缘节点数public int getNumEdges() {
int numberOfEdges = 0;
if(nodeToNeighbours != null) {
for(Set<Node> values : nodeToNeighbours.values()) {
numberOfEdges = numberOfEdges + values.size();
}
}
return numberOfEdges;
}