Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 适用于应用条件的数据结构_Java_Xml_Tree_Perl Data Structures - Fatal编程技术网

Java 适用于应用条件的数据结构

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

我有一个包含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文件,如下所示

<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。