ホームページ >Java >&#&チュートリアル >JavaでPairを使用してペアの結果を返す方法

JavaでPairを使用してペアの結果を返す方法

王林
王林転載
2023-05-18 19:58:041428ブラウズ

Pair を使用してペアの結果を返す

C/C 言語では、Pair (ペア) は、std::pair など、2 つのデータ型を 1 つのデータ型に結合するコンテナーです。

Pair には 2 つの主な用途があります:

  1. ペア処理のためにキーと値をまとめます。主に、Map Entry クラスなど、Map で名前と値のペアを返すために使用されます。 ;

  2. 関数が 2 つの結果を返す必要がある場合、Pair を使用すると、定義しすぎるデータ モデル クラスを避けることができます。

最初の使用方法の方が一般的ですが、ここでは主に 2 番目の使用方法について説明します。

1. ペアになった結果の戻りを実装するモデル クラスを定義します

関数実装コード:

/** 点和距离类 */@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();
    ...
}

2. 使用します。ペア クラス ペアの結果を返す実装

#JDK では、ネイティブのペア データ構造は提供されず、代わりに Map::Entry を使用できます。ただし、Apache の commons-lang3 パッケージに含まれる Par クラスの方が使いやすいため、以下では例として、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();
    ...
}

以上がJavaでPairを使用してペアの結果を返す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。