2015-07-22 67 views
1

我有一个有5万行的JTable。 每行包含3列。 中间一列包含双(价格),并且是这样读的。我应该为这个定价表使用什么数据结构

col1 col2  col3 
     1.0031 
     1.0032 
     1.0033 
     1.0034 
     1.0035 

我那么有大约10-20的价格是被每20ms更新不断更新阵列。

即时通讯目前遍历数组,并检查它反对50,000行找到它应该属于该行,并将其插入。

然后在下次更新时,林清除这些栏,并重复。

这是极其昂贵的,虽然,因为每次更新,我必须遍历20的价格,是那么每个迭代50000次找到他们应该属于该行的价值。

Theres得到一个更好的方式来做到这一点... 我真的希望能够根据价格插入价格在某一行。 (所以每个p大米映射到索引) 如果价格= 1.0035插入行X

相反,我必须做一些事情,如 如果价格是在50,000个值之一,找到值索引并插入。

任何想法,以实现这一目标的最佳途径? 散列表?四叉树用于本地搜索?任何事情都会更快,因为我的做法远远不够缓慢,因为应用程序需要。

+0

“找到它应该属于的行,并插入它”,应该属于什么,什么是插入的地方? – mangusta

+0

“我真的希望能够根据价格在某一行插入价格” - (O,o) – mangusta

回答

2

这听起来像你可以让你的TableModel管理SortedMap,如TreeMap<Double, …>,其中“提供了有保证log(n)时间成本,为containsKeygetputremove操作。”此相关example管理Map<String, String>

+0

谢谢,我认为这正是我需要的 – KyleK

0

树似乎是最合理的数据结构给我,但是如果你的价值观是在已知的范围内,你可以有对应于每个可能的价格,用一个标志表示如果价格存在的指标。您的搜索将会是,并且每个条目的更新将为O(1),缺点是内存占用增加。本质上这是一个散列表,尽管你的散列函数可能非常简单。

对于一棵树,你就必须做一些实验(或计算),以确定您的需求每个节点的值的数量。

相关问题