Apache Common

Pair

在 JDK 中,没有提供原生的 Pair 数据结构,也可以使用 Map::Entry 代替。不过,Apache 的 commons-lang3 包中的 Pair 类更为好用,下面便以 Pair 类进行举例说明。

/** 获取最近点和距离 */
public static Pair<Point, Double> getNearestPointAndDistance(Point point, Point[] points) {
    // 检查点数组为空
    if (ArrayUtils.isEmpty(points)) {
        return null;
    }
    // 获取最近点和距离
    Point nearestPoint = points[0];
    double nearestDistance = getDistance(point, points[0]);
    for (int i = 1; i < points.length; i++) {
        double distance = getDistance(point, point[i]);
        if (distance < nearestDistance) {
            nearestDistance = distance;
            nearestPoint = point[i];
        }
    }
    // 返回最近点和距离
    return Pair.of(nearestPoint, nearestDistance);
}Copy to clipboardErrorCopiedCopy to clipboardErrorCopied

函数使用案例如下:

Point point = ...;
Point[] points = ...;
Pair<Point, Double> pair = getNearestPointAndDistance(point, points);
if (Objects.nonNull(pair)) {
    Point point = pair.getLeft();
    Double distance = pair.getRight();
    ...
}
下一节:Guava 项目包含了谷歌在基于 Java 的项目中依赖的几个 Google 核心库:集合,缓存,原语支持,并发库,常见注释,字符串处理,I/O 等。