类型增强
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);
}
函数使用案例如下:
Point point = ...;
Point[] points = ...;
Pair<Point, Double> pair = getNearestPointAndDistance(point, points);
if (Objects.nonNull(pair)) {
Point point = pair.getLeft();
Double distance = pair.getRight();
...
}