【发布时间】:2015-10-30 18:57:43
【问题描述】:
问题确实比标题允许我指定的范围更广。 我有一个大文件,按照接收到的顺序表示无序编号的数据包以及与之对应的时间戳,例如(为清楚起见,箭头包含在文件中,而不是真正在文件中):
seq_1 ----> 时间戳
seq_2 ----> 时间戳
seq_3 ----> 时间戳
seq_2 ----> 时间戳
seq_5 ----> 时间戳
seq_4 ----> 时间戳
...
时间戳总是会增加,但我可能会重复数据包、数据包乱序等。我已将文件解析为字符串列表,现在必须确定适当的数据结构来保存它,考虑到我需要:
- 删除所有重复的序列号,只保留第一个到达的序列号。
- 获取按序号排序的有序可迭代结构。
我的想法是我可以绘制(虽然不是真的要这样做)一个图表条,x 轴是序列号,y 轴是时间戳。我需要手动找到局部最大值和最小值,所以我应该能够访问任何条目的相邻条目。
我曾考虑将行列表解析为 dictionary 或 (sequence_number, timestamp),小心不要覆盖现有条目(条件 1),然后是 turning it into a list of tuples,最后是 sorting the list by key。 list 应该允许我访问相邻的条目,从而满足条件 2。解析的文件很大,所以我想知道 是否有可以更好扩展的解决方案(不需要在两个数据之间进行转换结构 + 后验排序)。
【问题讨论】:
-
一个"Tree Map" 是合适的。 Java 标准库就有这样的集合。这是一个在 Python 中寻找问题的老问题:stackoverflow.com/q/6886294/1172714