【发布时间】:2014-08-28 06:02:56
【问题描述】:
我的数据有层次关系。让我们想象一个人类染色体。我们有 24 条染色体,每条都是双链的(即 +/-),每条链上都有多个区域。让我们假设不同链和染色体上的区域是独立的。目前我将所有区域存储如下:
List<List<List<Region>>> regions;
第一个列表表示染色体,第二个列表链,第三个列表表示区域。
出于我的处理目的,需要对这些列表进行各种插入/删除以及大量顺序和随机访问。而且由于可能存在大量区域(数十亿),因此在速度和内存消耗方面的效率至关重要。人类的染色体数量为 24 条,因此只有 2 条链:[24 x 2 x 1E+9] 的可能大小为regions。
regions 是基础,因此我想知道是否有更好的解决方案来处理我的内存中数据表示。
【问题讨论】:
-
为什么不创建一个对象层次结构,其中一个封装另一个?
-
你能澄清一下你的建议吗?
-
看看Wintellect.Powercollections。 BigList 好像很适合你
-
人类在哪个宇宙有24条染色体?
-
如果你要
Chromosome,Strand,Region:你为什么想出List<List<List<Region>>>。这看起来不是一个很好的模型。
标签: c# collections containers bigdata hierarchical-data