-1
我正在開發一個帶google地圖的android應用程序。 我創建了一個存儲Lat/Lng,Float的散列表。將元素列表添加到鏈接列表
Map<LatLng,Float> distance_Map = new HashMap<LatLng, Float>();
我用這個來存儲2個給定緯度和經度之間的距離,使用下面的方法。
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);
所以我通過一個循環運行這段代碼,找到首位用戶之間的距離進入與其他地方並保存相應的距離和LNG /緯度在distance_Map.After,我用下面的代碼進行排序這些距離。
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());
}
});
這將運行perfectly.But我需要使用相同的LinkedList sorted_Distance_LatLng_List排序另一組distances.To的做,我通過清除其值使用相同的HashMap(distance_Map)。
distance_Map.clear();
distance_Map.put(markerPoints.get(i), distance);
,但我不知道如何插入這個distance_Map到相同的鏈表(sorted_Distance_LatLng_List)。我使用下面的代碼
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());
}
});
但它給我的錯誤,因爲已經創建的列表。我該怎麼做?請幫助我。提前感謝您。