2016-12-13 8 views
0

任意の範囲からキー値データ(例:時系列データ)を要求する必要があるデータセットがあります。できるだけ早く実行するにはどうしたらいいですか?Javaでのデータの高速範囲/区間検索

私は、Python pandasがレンジスライシングを行う方法と同様のものを考えています。

例:(0値)、(10、値)、(20値)、(30値)、(41値)、(:

データはキーと値のペアであります51、値)、(60、値)...

問合せ:私のデータポイントを与える時間から範囲10一つ

40への可能性がマッチングを見つけるためにツリーを横断、間隔のツリーを構築していますArrays.copyOfRangeを使用します。

+0

@J Wang自分で書くか、ツールを使用できますか? – vahid

答えて

3

私の頭の上には、NavigableMap(JDKには2つの実装があります)がありますが、これはスライスのようなsubMapメソッドを持っています。

または、キー、値のペア(キーでソート)のArrayList。あなたのスライスを得るためにCollection.binarySearchsublistを使用して範囲の終わりを探します。

+0

... _ordered_ ArrayList、または 'Data'が変更されない場合は配列です。 – greybeard

+0

リストはいつも注文されていますが、私は答えを時間でソートするように更新します。私はスライスメソッドを持たないので配列を使用することを指定しませんでした.Arrayistが配列に裏打ちされていることを考えれば、大きな違いがないことがわかります。 – brain