Gen*_*nik 0 java string data-structures
我有一个国家代码列表,如我们,fra,英国等.
我需要预加载它们并检查是否存在字符串.我可以使用的表现最快的数据结构是什么,因为比较字符串可能是资源密集型的?
我应该创建一个静态的字符串数组或ArrayList或其他东西吗?
谢谢!
如果你有一组固定的短字符串并想测试给定的字符串是否在其中,你可能想要使用a HashSet<String>,它提供极快的查找并且可以非常快速地回答你的查询.例如:
Set<String> myStrings = new HashSet<String>();
myStrings.add("us");
myStrings.add("fra");
/* ... */
if (myStrings.contains("test-string")) {
// String is there.
} else {
// Nope! String is not there.
}
Run Code Online (Sandbox Code Playgroud)
如果你有一大堆更长的字符串,trie将是一个合适的(但空间效率稍差)数据结构.如果您事先知道正在使用哪些字符串并且该集合永远不会更改,请考虑查看DAWG数据结构.这些都不是Java标准库的一部分,尽管快速谷歌搜索应该提供有关这两者的信息.
希望这可以帮助!