C/C++ 언어에서 쌍(쌍)은 std::pair와 같이 두 개의 데이터 유형을 하나의 데이터 유형으로 결합하는 컨테이너입니다.
Pair에는 두 가지 주요 용도가 있습니다.
쌍 처리를 위해 키와 값을 함께 넣습니다. 주로 Map의 Entry 클래스와 같이 Map에서 이름-값 쌍을 반환하는 데 사용됩니다.
함수가 반환해야 하는 경우; 두 개의 결과가 있는 경우 쌍을 사용하여 너무 많은 데이터 모델 클래스를 정의하는 것을 방지할 수 있습니다.
첫 번째 용도가 더 일반적이지만 여기서는 주로 두 번째 용도를 설명합니다.
함수 구현 코드:
/** 点和距离类 */@Setter@Getter@ToString@AllArgsConstructorpublic static class PointAndDistance { /** 点 */ private Point point; /** 距离 */ private Double distance; }/** 获取最近点和距离 */public static PointAndDistance 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 new PointAndDistance(nearestPoint, nearestDistance); }
함수 사용 사례:
Point point = ...; Point[] points = ...; PointAndDistance pointAndDistance = getNearestPointAndDistance(point, points);if (Objects.nonNull(pointAndDistance)) { Point point = pointAndDistance.getPoint(); Double distance = pointAndDistance.getDistance(); ... }
JDK에서 기본 쌍 데이터 구조가 없으므로 대신 Map::Entry를 사용할 수도 있습니다. 그러나 Apache commons-lang3 패키지의 쌍 클래스는 사용하기가 더 쉽습니다. 다음은 쌍 클래스를 예로 사용합니다.
함수 구현 코드:
/** 获取最近点和距离 */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(); ... }
위 내용은 Java에서 쌍을 사용하여 쌍 결과를 반환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!