openSet.stream()
.filter(vertex -> distance.get(vertex) < min)
.forEach(vertex -> {
current = vertex;
min = distance.get(vertex);
});
我想遍历openSet中的顶点,其中距离小于min(在开头设置为无穷大)。然后我想循环遍历这些经过滤波的顶点,并将current
更新为最小顶点,将min
更新为最小顶点的值。
我认为应该按照创建地图和比较器的方式进行操作?
distance
地图定义为:
Map<Integer, Double> distance = new HashMap<>();
它包含顶点数字作为键和距离源最短的距离。我正在做A * Star路径寻找算法。
答案 0 :(得分:0)
据我了解您的问题,这就是您尝试做的事情:
for (SomeClass vertex : openSet) {
if (distance.get(vertex) < min) {
current = vertex;
min = distance.get(vertex);
}
}
无需为此使用流。