Dalam bahasa C/C++, Pair (pair) ialah bekas yang menggabungkan dua jenis data menjadi satu jenis data, seperti std::pair.
Pair mempunyai dua kegunaan utama:
Letakkan kunci dan nilai bersama untuk pemprosesan pasangan, terutamanya digunakan untuk mengembalikan pasangan nilai nama dalam Peta, seperti dalam kelas Kemasukan Peta ;
Apabila fungsi perlu mengembalikan dua hasil, anda boleh menggunakan Pair untuk mengelak daripada menentukan terlalu banyak kelas model data.
Penggunaan pertama adalah lebih biasa, di sini kami menerangkan penggunaan kedua.
Kod pelaksanaan fungsi:
/** 点和距离类 */@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); }
Kes penggunaan fungsi:
rreeeDalam JDK, struktur data Pasangan asli tidak disediakan dan Map::Entry boleh digunakan sebaliknya. Walau bagaimanapun, kelas Pair dalam pakej commons-lang3 Apache lebih mudah digunakan. Berikut menggunakan kelas Pair sebagai contoh.
Kod pelaksanaan fungsi:
Point point = ...; Point[] points = ...; PointAndDistance pointAndDistance = getNearestPointAndDistance(point, points);if (Objects.nonNull(pointAndDistance)) { Point point = pointAndDistance.getPoint(); Double distance = pointAndDistance.getDistance(); ... }
Kes penggunaan fungsi:
/** 获取最近点和距离 */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); }
Atas ialah kandungan terperinci Cara menggunakan Pair dalam java untuk mengembalikan hasil berpasangan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!