我有一個數據集,我需要從任何任意範圍請求鍵值數據(例如時間序列數據)。我如何做到這一點,以便儘可能快地運行?Java中的數據的快速範圍/間隔查找
我想到類似於Python熊貓如何進行範圍切片的事情。
實施例:
數據是鍵,值對:(0,值),(10,值),(20,值),(30,值),(41,值),( 51,值),(60,值)...
查詢:給我數據,從時間點爲10〜40
一種可能性是建立間隔的樹,遍歷樹來查找匹配數組的位置,然後使用Arrays.copyOfRange。
我有一個數據集,我需要從任何任意範圍請求鍵值數據(例如時間序列數據)。我如何做到這一點,以便儘可能快地運行?Java中的數據的快速範圍/間隔查找
我想到類似於Python熊貓如何進行範圍切片的事情。
實施例:
數據是鍵,值對:(0,值),(10,值),(20,值),(30,值),(41,值),( 51,值),(60,值)...
查詢:給我數據,從時間點爲10〜40
一種可能性是建立間隔的樹,遍歷樹來查找匹配數組的位置,然後使用Arrays.copyOfRange。
我可以使用NavigableMap(在JDK中有兩種實現方式),它有一個類似於片段的subMap方法。
或者是Key,Value對的ArrayList(按鍵排序)。使用Collection.binarySearch找到範圍的結尾,然後用sublist找到您的切片。
@J王你想寫自己還是可以使用工具? – vahid