数据(1)

我需要一个数据结构,
1、在内存使用,但是需要随时可以dump成文件;
2、每秒钟可能要往里写入10K的订单数据;
3、每个订单数据大概结构可以简化成 ID=1001,AM=100,PR=0.123456,TS=1560499465234,其中AM是数量、为整数;PR是价格、为小数点后最多6位;TS是时间戳;
4、数据需要按照PR排序,如果PR相同、按TS排序;
5、随时可以快速的拿到PR最大的前1档,前5,前10,前100的AM汇总数据;
6、随时可以快速拿到合并精度后的前1档,前5,前10,前100的AM汇总数据,所谓合并精度意味着从小数点后的6位变成5位,比如PR=0.123456和PR=0.123458,在合并精度到5位以后,都属于0.12345档;
7、随时可以快速的将PR最大的前1档中,按排序依次减去每个订单的数据量,去掉一部分数量;
8、随时可以快速的去掉一部分数量N,此时N可能会大于前K档的数量和,小于等于前K+1档的数量和,此时前K档数据清空,第K+1档数据,按排序依次减去每个订单的数据量,直到总减少的数据量恰好是N;

skipList

https://kenby.iteye.com/blog/1187303

原文地址:https://www.cnblogs.com/longxok/p/11024138.html