我有一个国家代码列表,例如我们、fra、uk 等。
我需要预加载它们并检查那里是否存在字符串。由于比较字符串可能会占用大量资源,因此我可以使用的最快的数据结构是什么?
我应该制作一个静态的字符串数组还是一个 ArrayList 或其他东西?
谢谢!
我有一个国家代码列表,例如我们、fra、uk 等。
我需要预加载它们并检查那里是否存在字符串。由于比较字符串可能会占用大量资源,因此我可以使用的最快的数据结构是什么?
我应该制作一个静态的字符串数组还是一个 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.
}
如果您有大量更长的字符串,则trie将是一种合适的(但空间效率稍低)的数据结构。如果您事先知道您正在使用哪些字符串并且该集合永远不会改变,请考虑查看DAWG数据结构。这些都不是 Java 标准库的一部分,尽管快速的谷歌搜索应该会找到关于这两者的信息。
希望这可以帮助!