Hi. Ich habe eine Liste, in der IP-Adresse aufsteigend sortiert sind. Zwei IP-Adressen können ähnliche GPS haben. Wie entscheide ich dann bei Duplikaten, welche IP-Adresse behalten werden soll, sodass nicht immer nur die kleinste oder größte IP des gleichen GPS erhalten bleibt? Das Resultat sollte jedoch auch replizierbar sein, das heißt, wenn in einem Intervall neue und gleiche IPs hinzukommen, dann soll das Resultat auch das gleiche sein.
Beispiel:
Beispiel:
Java:
TreeMap<Point2D, String[]> database = new TreeMap<>(Comparator.comparingDouble(Point2D::getX).thenComparingDouble(Point2D::getY));
//...
double minDistance = 0.01; // approx ~1km
for (Point2D p1 : new LinkedList<>(database.keySet())) {
for (Point2D p2 : new LinkedList<>(database.keySet())) {
if (p1.equals(p2)) {
continue;
}
if (p1.distance(p2) < minDistance) {
// Was hier tun?
//database.remove(p2);
//System.out.println("Removed duplicate GPS entry at " + p2 + " with distance " + p1.distance(p2));
}
}
}