Java 适用于应用条件的数据结构
我有一个包含10k行数据的csv文件,如下所示Java 适用于应用条件的数据结构,java,xml,tree,perl-data-structures,Java,Xml,Tree,Perl Data Structures,我有一个包含10k行数据的csv文件,如下所示 20131210,0,0,00981231231110,0123,123p1. 20131210,0,0,00981231231120,0123,123p1. 20131210,0,0,00981231231130,0123,123p1. 20131210,0,0,00981231231140,0123,123p1. 20131210,0,0,00981231231150,0123,123p1. 我还有如下xml文件,如下所示 <valid
20131210,0,0,00981231231110,0123,123p1.
20131210,0,0,00981231231120,0123,123p1.
20131210,0,0,00981231231130,0123,123p1.
20131210,0,0,00981231231140,0123,123p1.
20131210,0,0,00981231231150,0123,123p1.
我还有如下xml文件,如下所示
<validatecondition>
<ID>
00981231231110
</ID>
<SVC_ID>
TMC
</SVC_ID>
<applyrate>
12.0Dollars
</applyrate>
<ID>
00981231231120
</ID>
<applyrate>
2.0Dollars
</applyrate>
.
.
.
.
many conditions
</validatecondition>
node
|-- 00981231231110
| |-- TMC
| | |-- applyrate
| | | |-- 1.00
| | |
| | |
| |
| |
|
+-- 00981231231120
| |-- applyrate
| | |-- 111.00
|
+-- 00981231231130
| |-- RMC
| | |-- applyrate
| | | |-- 11.00
| | |
| | |
| |
|
|
00981231231110
TMC
12.0美元
00981231231120
2.0美元
.
.
.
.
许多条件
节点
|-- 00981231231110
||--TMC
|| |--applyrate
| | | |-- 1.00
| | |
| | |
| |
| |
|
+-- 00981231231120
||--applyrate
| | |-- 111.00
|
+-- 00981231231130
||--RMC
|| |--applyrate
| | | |-- 11.00
| | |
| | |
| |
|
|
我已将上述条件应用于每一行,并据此得出费率。当前,逻辑按顺序迭代每个节点,并检查ID是否与每行中的值匹配并应用速率。是否有任何图形数据结构可以快速应用于评级?如果您必须查找,答案是在大多数情况下是一个映射
。所以在你的情况下,你必须通过Id查找
因此,在您的例子中,您可以创建一个HashMap
(或类似的东西)。然后迭代csv数据,并使用Id从映射中查找
这将使你的算术从O(n^2)
加速到O(n)
,因为列表查找是O(n)
,你必须做n
次,但是HashMap
的查找是O(1)
(摊销)
如果由于某种原因不能使用HashMap
,可以尝试对xml数据进行排序,并使用二进制搜索算法。在这种情况下,您可以使用O(n log n)
,这仍然比O(n^2)
好。我必须应用多个条件。然后您可以使用双重查找。我想不需要图形。我已经编辑了这个问题,请查看图形中的xml。