2012-01-20 155 views
2

我有一個拉特,長,位置名稱的表。 我計算了距離當前位置的最近距離,並將距離添加到一個數組列表中,然後按升序排序。 接下來我在其他數組列表中添加了名稱。 現在我需要使用距其他列表的距離來按順序設置名稱。 如何做到這一點?使用另一個數組列表排序數組列表

回答

0

爲什麼不直接構造一個TreeMap,距離作爲鍵和名稱作爲值。這樣他們將始終按距離排序。

+1

以距離爲關鍵的TreeMap是個好主意,但是如果有5個具有相同距離的條目呢? – Kent

+0

嗯,好點。 :) – Tudor

1

是根據該緯度的緯度,經度計算出來的距離嗎?那麼爲什麼不使用地圖數據結構呢?

它爲您提供的對位置的距離

+0

如果我把值的地圖,然後再次我需要把他們在一個列表 – Vamshi

+0

我需要計算距離使用那些經緯度,並在列表中添加名稱使用最近的距離 – Vamshi

0

想必你有一些類,它包含的緯度,經度和地點名稱。您可以將此類的對象放入TreeSet,比較器將當前位置作爲構造函數參數,並計算進行比較的距離。

3

我想你在這裏使用的數組太大了。如果你有兩個或更多的相關數據,你不應該把每一塊放到一個單獨的數組中。相反,創建一個類來保存所有相關數據(lat,long,distance和name),並且擁有一個擁有該類實例的數組(或者其他更能滿足您需求的集合,例如SortedList)。該類可以使用距離作爲度量來實現Comparable,因此可以按距離進行排序。

+0

gr8 ans ...這就是我在類似情況下所做的! – aProgrammer

-1

使用Arrays.sort()。你甚至可以不必在單獨的數組中添加每個當前距離。正確實施比較器。

在您的ArrayList上做toArray()後使用此功能。

+0

問題的關鍵是如何將一個名稱數組與一個距離數組關聯(已排序)。 –