Ich entwickle eine Android-Anwendung mit Google Maps. Ich habe eine Hashmap erstellt, die Lat/Lng, Float darin speichert.Hinzufügen einer Liste von Elementen zu einer verknüpften Liste
Ich verwende dies, um den Abstand zwischen 2 gegebenen Breiten- und Längengrad mit der folgenden Methode zu speichern.
Location loc1 = new Location("");
loc1.setLatitude(markerPoints.get(0).latitude);
loc1.setLongitude(markerPoints.get(0).longitude);
Location loc2 = new Location("");
loc2.setLatitude(markerPoints.get(i).latitude);
loc2.setLongitude(markerPoints.get(i).longitude);
float distance = loc1.distanceTo(loc2);
distance_Map.put(markerPoints.get(i), distance);
So betreibe ich diesen Code durch eine Schleife und finden Abstände zwischen den ersten Platz Benutzer gibt und die anderen Orte und speichert die entsprechenden Abstände und Lng/Lat in der distance_Map.After, dass ich den folgenden Code verwenden, um zu sortieren diese Entfernungen.
List<Map.Entry<LatLng,Float>> sorted_Distance_LatLng_List = new LinkedList<Map.Entry<LatLng, Float>>(distance_Map.entrySet());
Collections.sort(sorted_Distance_LatLng_List, new Comparator<Map.Entry<LatLng, Float>>() {
@Override
public int compare(Map.Entry<LatLng, Float> o1, Map.Entry<LatLng, Float> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
Dies läuft perfectly.But Ich brauche die gleiche LinkedList sorted_Distance_LatLng_List verwenden einen anderen Satz von distances.To sortieren zu tun, dass ich das gleiche hashmap (distance_Map) verwenden, indem ihre Werte zu löschen.
distance_Map.clear();
distance_Map.put(markerPoints.get(i), distance);
aber ich weiß nicht, wie diese distance_Map auf den gleichen LinkedList einzufügen (sorted_Distance_LatLng_List) .I den folgenden Code verwenden
sorted_Distance_LatLng_List.clear();
List<Map.Entry<LatLng,Float>> sorted_Distance_LatLng_List = new LinkedList<Map.Entry<LatLng, Float>>(distance_Map.entrySet());
Collections.sort(sorted_Distance_LatLng_List, new Comparator<Map.Entry<LatLng, Float>>() {
@Override
public int compare(Map.Entry<LatLng, Float> t1, Map.Entry<LatLng, Float> t2) {
return t1.getValue().compareTo(t2.getValue());
}
});
Aber es gibt mir den Fehler, weil die Liste bereits erstellt . Wie kann ich das tun? Bitte helfen Sie mir. Vielen Dank im Voraus.