web-dev-qa-db-ja.com

Javaデータ構造リファレンス

メインのJavaデータ構造とそれぞれの時間の複雑さ(追加、検索、削除などの特定の操作の場合)の概要を含むWebサイトの参照を誰かに教えてもらえますか?例:Hashtablesは検索用のO(1)であり、LinkedListsはO(n)です。メモリ使用量などの詳細もいいでしょう。

これは、アルゴリズムのデータ構造を考えるのに非常に役立ちます。

25
Samuel Carrijo

Javaの実装が(複雑さの点で)一般的な言語に依存しない実装とは異なると考える理由はありますか?言い換えれば、さまざまなデータ構造の複雑さに関する一般的なリファレンスを参照するだけではどうでしょうか。

アルゴリズムとデータ構造のNIST辞書

ただし、Java固有を主張する場合:

Java標準データ構造Big O表記

JavaコレクションのチートシートV2 (リンク切れですが、 これはチートシートの最初のバージョンです

23
Matthew Nizol

最も包括的なJavaコレクションの概要はこちら

http://en.wikiversity.org/wiki/Java_Collections_Overview

11
Eugene Ryzhikov

ここで言及されているこの特定のリソースを見ることができませんでした。過去に非常に役立つことがわかりました。あなたの複雑さを知ってください!

http://bigocheatsheet.com/

2
Opentuned

私は非常に便利だと思いました コレクションフレームワーク ページ、特に コレクションフレームワークの概要 、ここではすべてのインターフェイス/クラスが簡単に説明されています。残念ながら、big-O情報はありません。

2
bluish

これを概説しているウェブサイトは1つもないと思います(プロジェクトにとっては良いアイデアのように聞こえますが)。問題の一部は、各アルゴリズムがどのように実行されるかを理解することが非常に重要であるということだと思います。ほとんどの場合、Big-Oを理解しているように思われるので、それを推測として使用します。ベンチマーク/プロファイリングでフォローアップして、何がより速く/より遅く実行されるかを確認します。

そして、はい、 Java docs は、この情報の多くをJava.utilに含める必要があります。

0
jW.

メインコレクションクラスの時間と空間の複雑さは、既知の時間の複雑さのデータ構造に対応している必要があります。 Javaこれに固有のものはないと思います。たとえば(あなたが言うように)ハッシュルックアップはO(1)である必要があります。 ここ または- ここ

0
Steve B.