【发布时间】:2018-02-04 19:56:05
【问题描述】:
我有一个电话号码列表,其中可能包含也可能不包含国家/地区代码。我从始终包含国家/地区代码的后端服务中获得一个号码。所以我已经最佳地找到了与该号码匹配的号码来自后端服务。
现在我正在做的是:
for(String number : backendNumbers){
for(Map.Entry<String, String> entry : contactMap.entrySet()){
if(number.endsWith(entry.getKey()) && entry.getKey().length() > MINIMUM_CONTACT_LENGTH){
Log.i(TAG, "Found name for "+entry.getKey()+" : "+entry.getKey()+":"+entry.getValue());
break;
}
}
}
其中联系人地图是这样的联系人地图 = -> 此键可能包含也可能不包含国家代码。在大多数情况下,它们不会。
当我从后端获得一个始终包含如下国家代码的号码时:“+8801710111111”。
现在这种方法的问题是每次我需要该地图时都会产生生成联系人地图的开销。同样,在我从后端为每个号码获取 N 个号码的情况下,我需要遍历整个联系人地图才能找到一个名字。
那么我可以在这里做得更好吗?任何建议将不胜感激。
【问题讨论】:
标签: java android search optimization substring