Class FastDirectedUnweightedMultiEdges
java.lang.Object
es.uam.eps.ir.relison.graph.multigraph.edges.fast.FastMultiEdges
es.uam.eps.ir.relison.graph.multigraph.edges.fast.FastDirectedUnweightedMultiEdges
- All Implemented Interfaces:
DirectedMultiEdges,MultiEdges,UnweightedMultiEdges
public class FastDirectedUnweightedMultiEdges extends FastMultiEdges implements DirectedMultiEdges, UnweightedMultiEdges
Fast implementation of directed unweighted edges for multigraphs.
-
Field Summary
Fields inherited from class es.uam.eps.ir.relison.graph.multigraph.edges.fast.FastMultiEdges
numEdges, types, weights -
Constructor Summary
Constructors Constructor Description FastDirectedUnweightedMultiEdges()Constructor. -
Method Summary
Modifier and Type Method Description booleanaddEdge(int orig, int dest, double weight, int type)Adds an edge to the set.java.util.stream.Stream<java.lang.Integer>getAdjacentNodes(int node)Gets the outgoing neighbourhood of a node.java.util.stream.Stream<MultiEdgeTypes>getAdjacentTypes(int node)Gets the types of the adjacent edges of a node.java.util.stream.Stream<java.lang.Integer>getIncidentNodes(int node)Gets the incoming neighbourhood of a node.java.util.stream.Stream<MultiEdgeTypes>getIncidentTypes(int node)Gets the types of the incident edges of a node.java.util.stream.IntStreamgetNodesWithAdjacentEdges()Obtains the set of nodes which have adjacent edges.java.util.stream.IntStreamgetNodesWithEdges()Obtains the set of nodes which have edges.java.util.stream.IntStreamgetNodesWithIncidentEdges()Obtains the set of nodes which have incident edges.java.util.stream.IntStreamgetNodesWithMutualEdges()Obtains the set of nodes which have, at least, a reciprocal edge.booleanremoveEdge(int orig, int dest, int idx)Removes an edge.booleanremoveEdges(int orig, int dest)Removes all the edges between a pair of nodes.booleanremoveNode(int idx)Removes a node from the edge list.booleanupdateEdgeType(int orig, int dest, int type, int idx)Modifies the weight of an edge.booleanupdateEdgeWeight(int orig, int dest, double weight, int idx)Modifies the weight of an edge.Methods inherited from class es.uam.eps.ir.relison.graph.multigraph.edges.fast.FastMultiEdges
addUser, containsEdge, getAdjacentCount, getEdgeTypes, getEdgeWeights, getIncidentCount, getIsolatedNodes, getNumEdges, getNumEdges, hasAdjacentEdges, hasEdges, hasIncidentEdges, hasMutualEdgesMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface es.uam.eps.ir.relison.graph.multigraph.edges.DirectedMultiEdges
getMutualNodes, getMutualTypes, getNeighbourCount, getNeighbourNodes, getNeighbourTypesMethods inherited from interface es.uam.eps.ir.relison.graph.multigraph.edges.MultiEdges
addUser, containsEdge, getAdjacentCount, getEdgeTypes, getIncidentCount, getIsolatedNodes, getNumEdges, getNumEdges, hasAdjacentEdges, hasEdges, hasIncidentEdges, hasMutualEdgesMethods inherited from interface es.uam.eps.ir.relison.graph.multigraph.edges.UnweightedMultiEdges
getAdjacentWeights, getEdgeWeights, getIncidentWeights, getMutualWeights, getNeighbourWeights
-
Constructor Details
-
FastDirectedUnweightedMultiEdges
public FastDirectedUnweightedMultiEdges()Constructor.
-
-
Method Details
-
getIncidentNodes
public java.util.stream.Stream<java.lang.Integer> getIncidentNodes(int node)Description copied from interface:MultiEdgesGets the incoming neighbourhood of a node.- Specified by:
getIncidentNodesin interfaceMultiEdges- Parameters:
node- The node.- Returns:
- a stream of all the ids of nodes.
-
getAdjacentNodes
public java.util.stream.Stream<java.lang.Integer> getAdjacentNodes(int node)Description copied from interface:MultiEdgesGets the outgoing neighbourhood of a node.- Specified by:
getAdjacentNodesin interfaceMultiEdges- Parameters:
node- The node.- Returns:
- a stream containing all the ids of the nodes.
-
getIncidentTypes
Description copied from interface:MultiEdgesGets the types of the incident edges of a node.- Specified by:
getIncidentTypesin interfaceMultiEdges- Parameters:
node- The node.- Returns:
- a stream containing all the edge types.
-
getAdjacentTypes
Description copied from interface:MultiEdgesGets the types of the adjacent edges of a node.- Specified by:
getAdjacentTypesin interfaceMultiEdges- Parameters:
node- The node.- Returns:
- a stream containing all the edge types.
-
addEdge
public boolean addEdge(int orig, int dest, double weight, int type)Description copied from interface:MultiEdgesAdds an edge to the set.- Specified by:
addEdgein interfaceMultiEdges- Parameters:
orig- Origin nodedest- Destiny nodeweight- Weight of the edgetype- Type of the edge- Returns:
- true if everything went OK, false if not.
-
getNodesWithIncidentEdges
public java.util.stream.IntStream getNodesWithIncidentEdges()Description copied from interface:MultiEdgesObtains the set of nodes which have incident edges.- Specified by:
getNodesWithIncidentEdgesin interfaceMultiEdges- Returns:
- a stream containing the ids of nodes with incident edges
-
getNodesWithAdjacentEdges
public java.util.stream.IntStream getNodesWithAdjacentEdges()Description copied from interface:MultiEdgesObtains the set of nodes which have adjacent edges.- Specified by:
getNodesWithAdjacentEdgesin interfaceMultiEdges- Returns:
- a stream containing the ids of nodes with incident edges
-
getNodesWithEdges
public java.util.stream.IntStream getNodesWithEdges()Description copied from interface:MultiEdgesObtains the set of nodes which have edges.- Specified by:
getNodesWithEdgesin interfaceMultiEdges- Returns:
- a stream containing the ids of nodes with incident edges
-
getNodesWithMutualEdges
public java.util.stream.IntStream getNodesWithMutualEdges()Description copied from interface:MultiEdgesObtains the set of nodes which have, at least, a reciprocal edge.- Specified by:
getNodesWithMutualEdgesin interfaceMultiEdges- Returns:
- a stream containing the ids of nodes with reciprocal edges.
-
removeEdge
public boolean removeEdge(int orig, int dest, int idx)Description copied from interface:MultiEdgesRemoves an edge.- Specified by:
removeEdgein interfaceMultiEdges- Parameters:
orig- source node.dest- incoming node.idx- the number of the edge- Returns:
- true if everything went OK, false if not.
-
removeNode
public boolean removeNode(int idx)Description copied from interface:MultiEdgesRemoves a node from the edge list.- Specified by:
removeNodein interfaceMultiEdges- Parameters:
idx- the identifier of the node.- Returns:
- true if everything went OK, false otherwise.
-
removeEdges
public boolean removeEdges(int orig, int dest)Description copied from interface:MultiEdgesRemoves all the edges between a pair of nodes.- Specified by:
removeEdgesin interfaceMultiEdges- Parameters:
orig- source node.dest- incoming node.- Returns:
- true if everything went OK, false otherwise.
-
updateEdgeWeight
public boolean updateEdgeWeight(int orig, int dest, double weight, int idx)Description copied from interface:MultiEdgesModifies the weight of an edge.- Specified by:
updateEdgeWeightin interfaceMultiEdges- Parameters:
orig- source node.dest- incoming node.weight- the new weight of the edge.idx- the number of the edge.- Returns:
- true if everything went OK, false if not, or the edge does not exist.
-
updateEdgeType
public boolean updateEdgeType(int orig, int dest, int type, int idx)Description copied from interface:MultiEdgesModifies the weight of an edge.- Specified by:
updateEdgeTypein interfaceMultiEdges- Parameters:
orig- source node.dest- incoming node.type- the new type of the edge.idx- the number of the edge.- Returns:
- true if everything went OK, false if not, or the edge does not exist.
-