gpt4 book ai didi

java - 最佳搜索字符串java中的子字符串

转载 作者:太空宇宙 更新时间:2023-11-04 11:11:55 24 4
gpt4 key购买 nike

我有一个电话号码列表,其中可能包含也可能不包含国家/地区代码。我从后端服务获得一个号码,该号码始终包含国家/地区代码。所以我已经最佳地找到了与来自后端服务的号码匹配的号码。

现在我正在做的是:

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;
}
}
}

其中联系人 map 是这样的联系人 map =<"01710111111", "Some name"> -> 该键可能包含也可能不包含国家/地区代码。在大多数情况下,他们不会。

当我从后端收到一个始终包含国家/地区代码的号码时,如下所示:“+8801710111111”。

现在这种方法的问题是每次我需要该 map 时生成该 map 都会产生开销。另外,如果我从后端获取每个号码的 N 个号码,我需要循环整个联系人 map 才能找到一个名字。

那么我在这里可以做得更好吗?任何建议将不胜感激。

最佳答案

对于给定的循环代码,您可以切换到 map.keySet() 以仅处理字符串键。否则这种方法并没有错,尤其是在比较 hashmap 的值时,这是您需要的最小开销。

关于java - 最佳搜索字符串java中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45903874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com