我需要实现一个图,该图将通用类型元素作为节点,并将通用类型元素作为边的标签。当标签为 Double 类型时,我需要能够计算图表的权重。
public class Graph<V, T> {
...
public Double graphWeight() {
Double sum = 0;
for every label T weight {
sum = sum + weight;
}
if(!directed) sum /= 2;
return sum;
}
}
这可以以某种方式完成吗?
最佳答案
传递并存储 DoubleFunction<T>
的实例在图的构造函数中。然后在循环中使用存储的实例:
public class Graph<V, T> {
...
private final DoubleFunction<T> getWeight;
public Graph(DoubleFunction<T> getWeight) {
this.getWeight = getWeight;
}
public double graphWeight() {
double sum = 0;
for every label T weight {
sum = sum + getWeight.apply(weight);
}
if(!directed) {
sum /= 2;
}
return sum;
}
}
图表的实例是这样创建的:
class Edge {
...
public double weight() {
..
}
}
...
Graph<Vertex,Edge> graph = new Graph<>(Edge::weight);
关于java - 将泛型类型求和为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50918408/