gpt4 book ai didi

java - 按前缀从属性文件读取属性的最有效解决方案是什么?

转载 作者:行者123 更新时间:2023-12-01 09:56:25 25 4
gpt4 key购买 nike

按前缀从属性文件中读取属性的最有效(就时间复杂度而言)的解决方案是什么?

例如,如果属性文件如下所示 -

prefix1.prop1=val1
prefix1.prop2=val2
prefix2.prop3=val3
prefix2.prop4=val4

我正在寻找一种方法,当像这样调用时 - getPropertiesByPrefix("prefix1") 应返回以下列表:

["prefix1.prop1", "prefix1.prop2"]

我可以看到 2 个选项 -

  1. 在每次 getPropertiesByPrefix 调用中,一一读取所有属性并获取以 prefix 开头的 props。
  2. 读取一次属性并构建一个 trie,然后 getPropertiesByPrefix 使用该 trie。

第二个选项似乎是更有效的方法。是否有任何现有的实现/第三方库?还是第三种选择?

最佳答案

分析很简单。

假设您有 n 个键的 properties,那么执行 key.startsWith(prefix) 的循环将在 O(m*n) 内运行时间,m 是前缀的大小。

另一方面,如果您构建一个Trie,则可以减少O(m),这显然更好。

Apache Commons有一些实现,尽管如果这里 n 很小,那么我真的不会打扰并避免增加代码的复杂性并使用简单的循环。

关于java - 按前缀从属性文件读取属性的最有效解决方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37174278/

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