私はTreeMultimap<Integer, String>
を持っています。これには重複キーも含まれています。java:Guava Multimapの特定のキー範囲内の値の数を取得
私もO(logN個)時間複雑であること、特定のキー の範囲内にある値の数を取得したいです。
Iは最初にその方法asMap()
を使用し、必要な範囲でsubmap
を作成し、そのサイズをフェッチすることによってSortedMap
からTreeMultimap
を変換してみました。
SortedMap<Integer, Collection<String>> sortedMap = mapList.getTmm().asMap();
return sortedMap.subMap(beg,end).size();
それは複雑O(logN個)を持っていますか?
また、私はここで問題に直面しました。 TreeMultimap
をSortedMap
に変換すると、値はCollection
クラスのオブジェクトになります。すなわち、TreeMultimap
に重複キーを有するキー - 値ペアは、単一のCollection
クラスに含まれる。 したがって、size()
メソッドは誤った値を返します。
これを実現する方法はありますか? 何か助けていただければ幸いです。
「複雑ですか?O(logN)?」それは正解を返さないので重要ではありません。値の数ではなく、キーの数です。 –
はい。他の方法はありますか? @AndyTurner –