gpt4 book ai didi

java - 在表中快速查找行的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:48 25 4
gpt4 key购买 nike

我有一个包含以下字段的文档:

  • 第一场
  • 字段2
  • 字段3
  • 字段4

我有以下表结构:

field1  |  field2  |  field3  |  field4  || result
--------------------------------------------------
foo bar MC
foo test1 MR
test2 test3 OM
foo test1 bar CM

当一个文档进来时,field1是foo,field2(空值),field3是bar,应该选择结果MC。当一个文档进来时,field1是foo,field2是test1,field3是bar,应该选择结果CM。

当然,您可以检查每一列并让匹配的行保持打开状态,直到循环每一行。但是,这个表结构可能会变得非常大,我正在寻找某种算法来解决上述问题,以高效和好的方式。

有什么想法吗?

最佳答案

正如@MarkoTopolnik 所写,RDBMS 做你想做的事。但是如果你仍然想实现自己的算法,一个选择是创建一棵树:第 1 级是 field1,第 2 级是 field2,等等。每个分支是一行你的 table 。如果您只有两个字段,则看起来像这样:

root----field1.valueA----field2.valueC---result1
\ \
\ \--field2.valueD---result2
\
\field1.valueB----field2.valueC---result3
\
\--field2.valueD---result4

您可以在每一层使用哈希表来实现这棵树。首先,您有一个哈希表,其中 field1 值作为键,hastables 作为值。这些哈希表将 field2 作为键,将 result 作为值。由于您允许 null 作为值,因此您必须使用 HashMap 而不是 Hashtable

关于java - 在表中快速查找行的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13154520/

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