Package com.jgalgo.graph
Interface WeightFunction.Int
-
- All Superinterfaces:
Comparator<Integer>
,IntComparator
,WeightFunction
- All Known Subinterfaces:
Weights.Byte
,Weights.Int
,Weights.Short
- Enclosing interface:
- WeightFunction
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public static interface WeightFunction.Int extends WeightFunction
Weight function that maps graph edges (or vertices) to integer weights.Some algorithms implementations support only integers weights, or run faster in such a case. This interface is the API for these algorithms for the edges (or vertices) integer weights.
// Create a directed graph with three vertices and edges between them Graph g = GraphFactory.newDirected().newGraph(); int v1 = g.addVertex(); int v2 = g.addVertex(); int v3 = g.addVertex(); int e1 = g.addEdge(v1, v2); int e2 = g.addEdge(v2, v3); int e3 = g.addEdge(v1, v3); // Assign some weights to the edges Weights.Int weights = g.addEdgesWeights("weightsKey", int.class); weights.set(e1, 1); weights.set(e2, 3); weights.set(e3, 15); EdgeWeightFunc.Int weightFunc = weights; // Calculate the shortest paths from v1 to all other vertices ShortestPathSingleSource ssspAlgo = ShortestPathSingleSource.newBuilder().setIntWeights(true).build(); ShortestPathSingleSource.Result ssspRes = ssspAlgo.computeShortestPaths(g, weightFunc, v1); // Print the shortest path from v1 to v3 assert ssspRes.distance(v3) == 4; assert ssspRes.getPath(v3).equals(IntList.of(e1, e2)); System.out.println("Distance from v1 to v3 is: " + ssspRes.distance(v3)); System.out.println("The shortest path from v1 to v3 is:"); for (int e : ssspRes.getPath(v3)) { int u = g.edgeSource(e), v = g.edgeTarget(e); System.out.println(" " + e + "(" + u + ", " + v + ")"); }
- Author:
- Barak Ugav
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.jgalgo.graph.WeightFunction
WeightFunction.Int
-
-
Field Summary
-
Fields inherited from interface com.jgalgo.graph.WeightFunction
CardinalityWeightFunction
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description default int
compare(int e1, int e2)
Compare two elements by their weights.default double
weight(int element)
Deprecated.int
weightInt(int element)
Get the integer weight of an element.-
Methods inherited from interface java.util.Comparator
equals, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Methods inherited from interface it.unimi.dsi.fastutil.ints.IntComparator
compare, reversed, thenComparing, thenComparing
-
-
-
-
Method Detail
-
weight
@Deprecated default double weight(int element)
Deprecated.Description copied from interface:WeightFunction
Get the weight of an element.- Specified by:
weight
in interfaceWeightFunction
- Parameters:
element
- an element identifier- Returns:
- the weight of the element
-
weightInt
int weightInt(int element)
Get the integer weight of an element.- Parameters:
element
- an element identifier- Returns:
- the integer weight of the element
- Throws:
IndexOutOfBoundsException
- ifelement
is not a valid element identifier
-
compare
default int compare(int e1, int e2)
Description copied from interface:WeightFunction
Compare two elements by their weights.- Specified by:
compare
in interfaceIntComparator
- Specified by:
compare
in interfaceWeightFunction
-
-