Maison >Java >javaDidacticiel >Comment utiliser Pair en Java pour renvoyer des résultats appariés

Comment utiliser Pair en Java pour renvoyer des résultats appariés

王林
王林avant
2023-05-18 19:58:041458parcourir

Utilisez Pair pour renvoyer des résultats appariés

En langage C/C++, Pair (pair) est un conteneur qui combine deux types de données en un seul type de données, tel que std::pair.

Pair a deux utilisations principales :

  1. Assembler la clé et la valeur pour le traitement par paire, principalement utilisé pour renvoyer des valeurs de nom dans Map Yes , comme la classe Entry dans Map ;

  2. Lorsqu'une fonction doit renvoyer deux résultats, vous pouvez utiliser Pair pour éviter de définir trop de classes de modèle de données.

La première utilisation est plus courante, nous expliquons ici principalement la deuxième utilisation.

1. Définissez la classe de modèle pour implémenter le retour des résultats appariés

Code d'implémentation de la fonction :

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

Cas d'utilisation de la fonction :

Point point = ...;
Point[] points = ...;
PointAndDistance pointAndDistance = getNearestPointAndDistance(point, points);if (Objects.nonNull(pointAndDistance)) {
    Point point = pointAndDistance.getPoint();
    Double distance = pointAndDistance.getDistance();
    ...
}
# 🎜🎜#2. Utilisez la classe Pair pour renvoyer des résultats appariés

Dans le JDK, il n'y a pas de structure de données Pair native, vous pouvez également utiliser Map::Entry à la place. Cependant, la classe Pair du package commons-lang3 d'Apache est plus facile à utiliser. Ce qui suit utilise la classe Pair comme exemple.

Code d'implémentation de la fonction :

/** 获取最近点和距离 */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);
}

Cas d'utilisation de la fonction :

Point point = ...;
Point[] points = ...;
Pair<Point, Double> pair = getNearestPointAndDistance(point, points);if (Objects.nonNull(pair)) {
    Point point = pair.getLeft();
    Double distance = pair.getRight();
    ...
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer