![]() |
1
1
您基本上概述了一个图形模型,传统上认为它是“节点”和“边”。但是证券/贷款是有效的。 这类问题有两个经典答案。 这取决于您希望能够对数据提出哪些问题、存储数据的效率以及数据的密度。 例如,如果证券和贷款之间存在30%的可能关系,那么密集的数据结构肯定会有回报。只要保持一个大矩阵:X上的证券,Y上的贷款(X,Y)意味着贷款存在。 如果集合不是很密集,则开始使用“稀疏边缘数据结构”。根据应用程序的不同,您可能会:
|
![]() |
2
1
好吧,在不给出答案的情况下,考虑如何使用二维数组,并从存储边缘信息的角度考虑问题。 |
![]() |
3
1
对我来说,这就像一个关系数据库问题。您所描述的是具有多对多关系的两个表。这个答案是否合适将很大程度上取决于您的数据实际上是什么样子的。前面建议让每个对象包含另一个对象的列表是一种方法,但让我们称之为“spade”或“spade”,这是一个关系数据库。考虑使用ADO.NET实体框架或LINQ等技术将数据定义为关系数据库,并使用LINQ查询数据。 你提到你关心的是让记忆加倍。这同样取决于你的真实数据是什么样子的,但是除非你有大量的数据,否则这可能不会是一个问题。唯一浪费的内存是空内存。使用内存,如果它(a)使问题更容易解决,或者(b)给你更多的灵活性。除非出现性能问题,否则不要优化。 |
![]() |
4
0
每个类都可以有另一个类的类型列表。除非您使用的是值类型,否则不会以这种方式复制数据。交叉引用可能导致内存泄漏。 |
![]() |
5
0
乔说的话是正确的。每个贷款都有一个担保实例列表,每个担保都有一个贷款实例列表。诀窍是确保你没有一笔贷款,认为它与证券有关,但该证券不同意。我建议只允许成对执行添加或删除操作,以确保它们是并行执行的。我不知道这将如何导致内存泄漏,因为GC足够聪明来处理这个问题。相比之下,引用计数没有一些技巧就无法处理这个问题。 |
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |