在讨论可能很大的列表时,是否存在用于存储索引范围的用例。
让我们说一下数百万条记录的清单。将对这些进行分析,并向用户报告索引子列表。而不是列出大量的索引列表,显然更容易呈现;
为用户识别行:10,21,100-000000,700000 ......等。
现在我可以从索引数组中明显地创建这个字符串,但我想知道以这种格式创建列表是否也会提高内存效率(而不是在内存中创建大量索引列表)。或者不值得处理开销?
列出intList = new List {1,2,3,4,5,6,7 ...};
VS
列出strList = new List {“1-3000”,“3002”,“4000-5000”......};
要应用这个,我会想象创建一个List,并在必要时添加项目更新/添加到列表中。需要相当多的将字符串转换为int,反之亦然,我认为这个过程可能不值得。
请告诉我这是否不够明确,我可以进一步解释。
更新
我非常喜欢Patrick Hofman的解决方案,使用范围列表。真正酷的是扩展它,以便.add(int)可以正确地修改范围列表。我认为这会很复杂,对不对?
答案 0 :(得分:4)
我会选择创建范围列表。根据其中的单打数量,可能会有效率更高或更低:
List<Range> l = new List<Range>{ 1, 2, 3, new Range(5, 3000) };
你可以像这样使用它:
onTaskRemoved