可以使用并行Stream API将顶点和边添加到jGraphT图中。
示例代码:
import org.jgrapht.Graph;
import org.jgrapht.graph.DefaultEdge;
import org.jgrapht.graph.DefaultUndirectedGraph;
import java.util.stream.IntStream;
public class GraphAddParallelDemo {
public static void main(String[] args) {
Graph<String, DefaultEdge> graph = new DefaultUndirectedGraph<>(DefaultEdge.class);
// 顶点并行添加
IntStream.rangeClosed(1, 10).parallel().forEach(i -> {
String vertex = "V" + i;
graph.addVertex(vertex);
});
// 边并行添加
IntStream.rangeClosed(1, 9).parallel().forEach(i -> {
String sourceVertex = "V" + i;
String targetVertex = "V" + (i + 1);
graph.addEdge(sourceVertex, targetVertex);
});
System.out.println("Graph vertexes: " + graph.vertexSet());
System.out.println("Graph edges: " + graph.edgeSet());
}
}
上述示例代码使用并行Stream API将10个顶点和9条边添加到jGraphT图中。由于使用了parallel()方法,所以添加操作会并行执行。
输出结果为:
Graph vertexes: [V1, V2, V3, V4, V5, V6, V7, V8, V9, V10]
Graph edges: [(V5,V6), (V1,V2), (V9,V10), (V2,V3), (V3,V4), (V4,V5), (V8,V9), (V6,V7), (V7,V8)]