[英]What is the most efficient solution for reading properties from a properties file by prefix?
通过前缀从属性文件中读取属性的最有效(就时间复杂度而言)解决方案是什么?
例如,如果属性文件如下所示-
prefix1.prop1=val1
prefix1.prop2=val2
prefix2.prop3=val3
prefix2.prop4=val4
我正在寻找一种方法,当这样调用时getPropertiesByPrefix("prefix1")
应该返回以下列表:
["prefix1.prop1", "prefix1.prop2"]
我可以看到2个选项-
getPropertiesByPrefix
调用上,一一读取所有属性,并获取以prefix开头的道具。 getPropertiesByPrefix
使用Trie。 第二个选项似乎是更有效的方法。 是否有任何现有的实现/第三方库? 还是第三个选择?
分析很简单。
假设您具有n个键的properties
,那么执行key.startsWith(prefix)
的循环将在O(m*n)
时间中运行,m是前缀的大小。
另一方面,如果构建Trie
,则可以将O(m)
减小,这显然更好。
Apache Commons有一些实现,尽管如果n很小,那么我真的不会打扰并且避免增加代码的复杂性并进行简单的循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.