如何从MAP中检索SET对象

时间:2014-10-16 06:07:14

标签: java map tree

很少知道如何从生成的节点获取边数。

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;
}

4 个答案:

答案 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;
}