我想检查一个字符串是否包含来自 String 数组的元素。我认为迭代所有数组元素并查看 String.contains(an element) 是否似乎效率不高。所以我想知道是否有更有效的方法可以快速查找。
例如,我想从地址字符串中获取国家名称。用户可以不受任何限制地写下他们的地址。地址字符串可以包含国家名称或城市名称。所以我想看看地址字符串是否有一个来自我将构建的数组的元素,该数组有一堆国家名称和城市名称。
我目前的解决方案是:
ArrayList<String> list;
String address;
...
for (String s : list) {
if (address.contains(s))
return s;
}
这是 O(n)。我想知道是否有更快的解决方案。