2016-12-06 91 views
0

我要創建Android項目,讓數和返回基於電話代碼區域名稱的Java類(它是本地使用)的最佳方式,價值

我們電話號碼長度在8到10之間,區域碼長度是4或5.

  1. 最好的方式來存儲區域代碼是什麼?是HashMap<Integer, String>適合這個原因<region code, region name>? (每個城市的數據可能是直到200條)

  2. 最新最好的方式,通過這個搜索?正如我剛纔所說的區域代碼長度可能是4或5,那麼我們應該在第一時間搜索4位數字,然後如果沒有任何結果搜索5位數字?

回答

1

呀。您可以使用HashMap來存儲數據。 通過使用HashMap的keySet()方法存儲數據後,您將獲得所有鍵列表作爲排序(升序)集。

之後,使用Set的contains()方法,您將知道區域代碼是否存在或不是4或5位數(否則如果返回false,您可以嘗試前4位數字,然後可以嘗試5位數字)。

提交該鍵(地區代碼)到您的地圖,你會很容易得到的區域名稱。

1

使用散列表將是你最好的選擇。它有O(1)的運行時間,所以一鍵搜索的時候,所以你可以這樣做:

HashMap<String, Integer> hm = new HashMap<String, Integer>(); 
hm.put("yourKey", 12345); 
...//repeat as needed 
hm.get("yourKey"); 

這將讓你的價值的最快方式。如果該值存在,它將返回映射的值,否則如果沒有映射,它將返回null。密鑰的長度是無關緊要的。