Maison > Java > javaDidacticiel > le corps du texte

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

王林
Libérer: 2023-05-18 19:58:04
avant
1396 Les gens l'ont consulté

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);
}
Copier après la connexion

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();
    ...
}
Copier après la connexion
# 🎜🎜#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);
}
Copier après la connexion

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();
    ...
}
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!