2016-12-06 47 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。密钥的长度是无关紧要的。