私はGoogle Guavaライブラリを使っていて、そこにたくさんの良いデータ構造があります。パフォーマンス上、Guavaライブラリはどれくらい良いですか?
他の誰かがそれを使用していた場合、巨大なデータセットで使用したときにどのように実行されたかに関するフィードバックを提供できますか?基本的に私はその操作のためにBigO表記法を探しています。
ありがとうございます。
私はGoogle Guavaライブラリを使っていて、そこにたくさんの良いデータ構造があります。パフォーマンス上、Guavaライブラリはどれくらい良いですか?
他の誰かがそれを使用していた場合、巨大なデータセットで使用したときにどのように実行されたかに関するフィードバックを提供できますか?基本的に私はその操作のためにBigO表記法を探しています。
ありがとうございます。
Guava貢献者はこちらです。
ええと、何を言っていますか?すべてのハッシュベースの(および列挙型ベースの)コレクションは、期待どおりに一定時間内に単一エントリ操作を行います。 (HashMultiset
、LinkedHashMultiset
、ConcurrentHashMultiset
、HashBiMap
、HashBasedTable
、ImmutableSet
、ImmutableMap
、EnumMultiset
、EnumBiMap
、など、そのカテゴリにすべての秋。)すべてのツリーベース/ソートコレクションはImmutableSortedMap
、TreeMultiset
含め、彼らのシングル入力操作のための対数の時間を持って、およびImmutableSortedSet
。
マルチマップの中では、ドキュメントには基本的にMap
とバリューコレクションの実装が記載されており、そこから把握することができます。 HashMultimap
は、基本的にHashMap
HashSet
秒であるLinkedHashMultimap
はLinkedHashMap
LinkedHashSet
秒であり、ArrayListMultimap
はHashMap
ArrayList
秒であり、LinkedListMultimap
はLinkedHashMap
LinkedList
秒(性能面、そうでない場合は、技術的に真)であり、TreeMultimap
はTreeMap
TreeSet
秒です、ImmutableSetMultimap
はImmutableMap
~ImmutableSet
s、ImmutableListMultimap
はImmutableMap
~sである。自明ではないかもしれません
唯一のものはSortedMultiset
実装はあなたがJDK TreeMap<E, Integer>
にだけ行うことができませんでしたO(log n)
時間でsubMultiset().size()
の操作を、提供することをおそらくあります。
コレクションのすべてのビュー(私たちは多くのビューが好きです)は、一定の時間内に戻り、予想通りの漸化を持っています。
さらに詳しいことがありますか?
(一般的に、Guavaは基本的にGoogleが本番環境で使用するコアライブラリですが、強健な環境ではユーティリティが十分に機能するという非常に強力な証拠だと思っています。あなたは基本的に無料でこれらの改善を得ています)。
Sumitさん、[不変のコレクション](http://code.google.com/p/guava-libraries/wiki/ImmutableCollectionsExplained#Where?)と[新しいコレクションの種類](http://code.google.com/p/guava-libraries/wiki/NewCollectionTypesExplained)を使用して、どのタイプが何に裏付けられているかを説明するテーブルを作成します。 –
印象的な答え。 –
Meh。つまり、これはどれも驚くべきことではありません._確かに、それはこれらのことについて驚きがないことを確認するグアバの優先事項の1つです... –
特にお探しの操作パフォーマンスはありますか? –
Guavaライブラリが大きいです。あなたは特にどの操作を見ていますか? – Perception
新しいコレクション(MultiSet、Multimap、BiMap、Table)操作のチャートとして提供することは素晴らしいことです。 Javaコレクション[BigO表記法](http://simplenotions.wordpress.com/2009/05/13/java-standard-data-structures-bigo-o-notation/)のように。 –