更新java-stream中的最小值

时间:2017-08-24 07:52:41

标签: java java-stream

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路径寻找算法。

1 个答案:

答案 0 :(得分:0)

据我了解您的问题,这就是您尝试做的事情:

for (SomeClass vertex :  openSet) {
    if (distance.get(vertex) < min) {
        current = vertex;
        min = distance.get(vertex);
    }
}

无需为此使用流。