Java中数据的快速范围/间隔查找

时间:2016-12-13 20:22:46

标签: java arrays algorithm indexing

我有一个数据集,我需要从任意范围请求密钥值数据(例如时间序列数据)。我该怎么做才能让它尽快运行?

我正在考虑类似于Python pandas切片范围的方法。

示例:

数据是键,值对:(0,值),(10,值),(20,值),(30,值),(41,值),(51,值),(60,值)...

查询:给我10到40时间范围内的数据点。

一种可能性是构建一个间隔树,遍历树以找到匹配的数组位置,然后使用Arrays.copyOfRange。

1 个答案:

答案 0 :(得分:3)

在我的脑海中你可以使用NavigableMap(JDK中有两个实现),它有一个类似切片的subMap方法。

或者ArrayList键,值对(按键排序)。使用Collection.binarySearch然后sublist查找范围的结尾以获取切片。

相关问题