@Override public int outDegree(N node) { return isDirected() ? outEdges(node).size() : degree(node); }
@Override public Set<E> edgesConnecting(N nodeU, N nodeV) { Set<E> outEdgesU = outEdges(nodeU); Set<E> inEdgesV = inEdges(nodeV); return outEdgesU.size() <= inEdgesV.size() ? unmodifiableSet(Sets.filter(outEdgesU, connectedPredicate(nodeU, nodeV))) : unmodifiableSet(Sets.filter(inEdgesV, connectedPredicate(nodeV, nodeU))); }
@Override public int degree(N node) { if (isDirected()) { return IntMath.saturatedAdd(inEdges(node).size(), outEdges(node).size()); } else { return IntMath.saturatedAdd(incidentEdges(node).size(), edgesConnecting(node, node).size()); } }
@Override public int outDegree(N node) { return isDirected() ? outEdges(node).size() : degree(node); }
@Override public int outDegree(N node) { return isDirected() ? outEdges(node).size() : degree(node); }
@Override public Set<E> edgesConnecting(N nodeU, N nodeV) { Set<E> outEdgesU = outEdges(nodeU); Set<E> inEdgesV = inEdges(nodeV); return outEdgesU.size() <= inEdgesV.size() ? unmodifiableSet(Sets.filter(outEdgesU, connectedPredicate(nodeU, nodeV))) : unmodifiableSet(Sets.filter(inEdgesV, connectedPredicate(nodeV, nodeU))); }
@Override public int degree(N node) { if (isDirected()) { return IntMath.saturatedAdd(inEdges(node).size(), outEdges(node).size()); } else { return IntMath.saturatedAdd(incidentEdges(node).size(), edgesConnecting(node, node).size()); } }
@Override public Set<E> edgesConnecting(N nodeU, N nodeV) { Set<E> outEdgesU = outEdges(nodeU); Set<E> inEdgesV = inEdges(nodeV); return outEdgesU.size() <= inEdgesV.size() ? unmodifiableSet(Sets.filter(outEdgesU, connectedPredicate(nodeU, nodeV))) : unmodifiableSet(Sets.filter(inEdgesV, connectedPredicate(nodeV, nodeU))); }
@Override public int degree(N node) { if (isDirected()) { return IntMath.saturatedAdd(inEdges(node).size(), outEdges(node).size()); } else { return IntMath.saturatedAdd(incidentEdges(node).size(), edgesConnecting(node, node).size()); } }
@Override public int outDegree(N node) { return isDirected() ? outEdges(node).size() : degree(node); }
@Override public int outDegree(N node) { return isDirected() ? outEdges(node).size() : degree(node); }
@Override public Set<E> edgesConnecting(N nodeU, N nodeV) { Set<E> outEdgesU = outEdges(nodeU); Set<E> inEdgesV = inEdges(nodeV); return outEdgesU.size() <= inEdgesV.size() ? unmodifiableSet(Sets.filter(outEdgesU, connectedPredicate(nodeU, nodeV))) : unmodifiableSet(Sets.filter(inEdgesV, connectedPredicate(nodeV, nodeU))); }
@Override public Set<E> edgesConnecting(N nodeU, N nodeV) { Set<E> outEdgesU = outEdges(nodeU); Set<E> inEdgesV = inEdges(nodeV); return outEdgesU.size() <= inEdgesV.size() ? unmodifiableSet(Sets.filter(outEdgesU, connectedPredicate(nodeU, nodeV))) : unmodifiableSet(Sets.filter(inEdgesV, connectedPredicate(nodeV, nodeU))); }
@Override public int degree(N node) { if (isDirected()) { return IntMath.saturatedAdd(inEdges(node).size(), outEdges(node).size()); } else { return IntMath.saturatedAdd(incidentEdges(node).size(), edgesConnecting(node, node).size()); } }
@Override public int degree(N node) { if (isDirected()) { return IntMath.saturatedAdd(inEdges(node).size(), outEdges(node).size()); } else { return IntMath.saturatedAdd(incidentEdges(node).size(), edgesConnecting(node, node).size()); } }