嗨,我是新來的Java,所以請使用基本和簡單的Java方法,這將幫助我快速理解您的想法。最好的方式來存儲和檢索城市之間的距離?
問題:我有ñ城市(每個城市都有一個獨特的名字),他們都彼此相連,這樣有任何兩個城市之間的距離。
什麼是最好的方式來存儲這些距離,以便後來如果我使用2個城市的名稱(因爲名稱是唯一的)我可以檢索它們之間的距離?
我正在考慮使用二維數組,但它似乎不是一個好主意(A - B和B - A之間可能的重複距離,也不能使用城市名稱)嗎?
爲什麼有人會對這個問題進行翻閱?
嗨,我是新來的Java,所以請使用基本和簡單的Java方法,這將幫助我快速理解您的想法。最好的方式來存儲和檢索城市之間的距離?
問題:我有ñ城市(每個城市都有一個獨特的名字),他們都彼此相連,這樣有任何兩個城市之間的距離。
什麼是最好的方式來存儲這些距離,以便後來如果我使用2個城市的名稱(因爲名稱是唯一的)我可以檢索它們之間的距離?
我正在考慮使用二維數組,但它似乎不是一個好主意(A - B和B - A之間可能的重複距離,也不能使用城市名稱)嗎?
爲什麼有人會對這個問題進行翻閱?
兩種可能添加到您自己的想法的HashMap的
HashMap的 - 比二維數組較重,但提供了易用性,直接城市名稱。
或者,作出enum
與城市的名字,並使用enum
索引到2D陣列。
2DArray的可變尺寸(非矩形) - 每行可以有不同的大小,只存儲整個矩陣的一半,並根據需要派生另一半。 eg of creating a non rectangular array
完美!除了HashMap之外,會嘗試實現所有的建議,如果我遇到問題,請回到這裏更新問題。謝謝! – 2013-02-25 06:36:16
@RonaldinhoState歡迎您,祝你好運! – 2013-02-25 06:37:48
如果兩個城市之間的距離只是幾何距離,您只需要存儲每個城市的座標。
否則,將距離存儲在一個N×N矩陣中,並保留一個帶有名稱的String[N]
。
查看java中的集合的概念。這會幫助你實現你在找什麼:
http://docs.oracle.com/javase/tutorial/collections/index.html
有什麼不對的二維數組(DIST)?我建議你給每個城市一個號碼,然後你可以通過dist [j] [i] – Burkhard 2013-02-25 06:25:05
訪問城市'i'和城市'j'之間的距離給每個城市一個號碼是個不錯的主意。謝謝!如何解決重複問題?另外我需要使用城市名稱。 – 2013-02-25 06:26:46