我有一个数据集,我需要从任意范围请求密钥值数据(例如时间序列数据)。我该怎么做才能让它尽快运行?
我正在考虑类似于Python pandas切片范围的方法。
示例:
数据是键,值对:(0,值),(10,值),(20,值),(30,值),(41,值),(51,值),(60,值)...
查询:给我10到40时间范围内的数据点。
一种可能性是构建一个间隔树,遍历树以找到匹配的数组位置,然后使用Arrays.copyOfRange。
答案 0 :(得分:3)
在我的脑海中你可以使用NavigableMap(JDK中有两个实现),它有一个类似切片的subMap方法。
或者ArrayList键,值对(按键排序)。使用Collection.binarySearch然后sublist查找范围的结尾以获取切片。