问题描述
我有一组元素,它们之间有距离度量。我正在寻找一种方法来从这个集合中找到最接近的一对元素。使用循环我将使用以下算法:
np.nan
有没有一种优雅的方式使用 Java 流来实现这个算法?
解决方法
可能是这样的:
Optional<SimpleEntry> closestPair = elements.stream()
.flatMap(elem -> elements.stream()
.filter(other -> !elem.equals(other))
.map(other -> new SimpleEntry(elem,other))
.min(Comparator.comparingDouble(e -> e.getKey().distance(e.getValue()));
但您可能希望将这些内联 lambda 提取为单独的方法。