2012-06-10 10 views
11

私はGoogle Guavaライブラリを使っていて、そこにたくさんの良いデータ構造があります。パフォーマンス上、Guavaライブラリはどれくらい良いですか?

他の誰かがそれを使用していた場合、巨大なデータセットで使用したときにどのように実行されたかに関するフィードバックを提供できますか?基本的に私はその操作のためにBigO表記法を探しています。

ありがとうございます。

+2

特にお探しの操作パフォーマンスはありますか? –

+3

Guavaライブラリが大きいです。あなたは特にどの操作を見ていますか? – Perception

+1

新しいコレクション(MultiSet、Multimap、BiMap、Table)操作のチャートとして提供することは素晴らしいことです。 Javaコレクション[BigO表記法](http://simplenotions.wordpress.com/2009/05/13/java-standard-data-structures-bigo-o-notation/)のように。 –

答えて

35

Guava貢献者はこちらです。

ええと、何を言っていますか?すべてのハッシュベースの(および列挙型ベースの)コレクションは、期待どおりに一定時間内に単一エントリ操作を行います。 (HashMultisetLinkedHashMultisetConcurrentHashMultisetHashBiMapHashBasedTableImmutableSetImmutableMapEnumMultisetEnumBiMap、など、そのカテゴリにすべての秋。)すべてのツリーベース/ソートコレクションはImmutableSortedMapTreeMultiset含め、彼らのシングル入力操作のための対数の時間を持って、およびImmutableSortedSet

マルチマップの中では、ドキュメントには基本的にMapとバリューコレクションの実装が記載されており、そこから把握することができます。 HashMultimapは、基本的にHashMapHashSet秒であるLinkedHashMultimapLinkedHashMapLinkedHashSet秒であり、ArrayListMultimapHashMapArrayList秒であり、LinkedListMultimapLinkedHashMapLinkedList秒(性能面、そうでない場合は、技術的に真)であり、TreeMultimapTreeMapTreeSet秒です、ImmutableSetMultimapImmutableMap~ImmutableSets、ImmutableListMultimapImmutableMap~sである。自明ではないかもしれません

唯一のものはSortedMultiset実装はあなたがJDK TreeMap<E, Integer>にだけ行うことができませんでしたO(log n)時間でsubMultiset().size()の操作を、提供することをおそらくあります。

コレクションのすべてのビュー(私たちは多くのビューが好きです)は、一定の時間内に戻り、予想通りの漸化を持っています。

さらに詳しいことがありますか?

(一般的に、Guavaは基本的にGoogleが本番環境で使用するコアライブラリですが、強健な環境ではユーティリティが十分に機能するという非常に強力な証拠だと思っています。あなたは基本的に無料でこれらの改善を得ています)。

+1

Sumitさん、[不変のコレクション](http://code.google.com/p/guava-libraries/wiki/ImmutableCollectionsExplained#Where?)と[新しいコレクションの種類](http://code.google.com/p/guava-libraries/wiki/NewCollectionTypesExplained)を使用して、どのタイプが何に裏付けられているかを説明するテーブルを作成します。 –

+0

印象的な答え。 –

+1

Meh。つまり、これはどれも驚くべきことではありません._確かに、それはこれらのことについて驚きがないことを確認するグアバの優先事項の1つです... –

関連する問題