写真では、Javaコレクションクラス(Javaコレクションクラスの概要)を確認できます。
Picture Lets You See Java Collection Class
Javaコレクションクラスに関する記事はたくさんありますが、最近、Javaコレクションの全体的なフレームワークを基本的に示す非常に興味深い写真を見ました。非常に直感的です。
画像がはっきりしていないことがわかったとします。 拡大画像を表示するには、ここをクリックしてください
ここで、コレクションクラスは、マップとコレクションの2つの主要なカテゴリに分けられます。
画像の左上にある灰色の4つのクラス(Dictionary、HashTable、Vector、Stack)はスレッドセーフですが、これらはすべて古いJDKレガシークラスです。基本的にはあまり使用されておらず、対応する置換クラスがあります。 Mapは、画像の左上隅にあるDictionary抽象クラスを置き換えるために使用されます(Mapの公式ドキュメントには 説明 )。
Mapインターフェースを使用して置き換えることを公式に推奨しています。 HashTableについても同じです。 ConcurrentHashMapの公式の推奨事項は、それを置き換えることです。次のVectorは、リストの下にある実装クラスです。
次に、一番上のピンクの部分は、コレクションクラスのインターフェイス図全体です。
Mapの構造は比較的単純であり、Collectionの構造は比較的複雑です。コレクションには、リスト、キュー、およびセットの3つの継承されたインターフェイスがあります。
次の緑色の部分は、コレクションクラスのメインの実装クラスです。
これは、私たちが最も頻繁に使用するコレクションクラスでもあります。
による 実装インターフェース 分類:
Mapインターフェースの実装は、EnumMap、IdentityHashMap、HashMap、LinkedHashMap、WeakHashMap、TreeMapです。
Listインターフェースの実装は、ArrayList、LinkedListです。
Setインターフェースの実装は、HashSet、LinkedHashSet、TreeSetです。
キューインターフェイスの実装は次のとおりです:PriorityQueue、LinkedList、ArrayQueue
に従い データ構造の基礎となる実装 分類:
基になるレイヤーは配列として実装されます:EnumMap、ArrayList、ArrayQueue
基になるレイヤーは、リンクリストとして実装されます:LinkedHashSet、LinkedList、LinkedHashMap
基盤となる実装は、ハッシュテーブルとして実装されます:HashMap、HashSet、LinkedHashMap、LinkedHashSet、WeakHashMap、IdentityHashMap
基になるレイヤーは赤黒木として実装されます:TreeMap、TreeSet
基になるレイヤーは、バイナリヒープとして実装されます:PriorityQueue
一番下の部分は、java.util.concurrentパッケージ内のクラスです。パッケージ名によると、このパッケージのクラスは、Javaプログラミングのさまざまな並行性シナリオを処理するために使用されていることがわかります。
ツールの推奨事項:http://grepcode.com/。
コードアーティファクトを読み取ります。このソースコード読み取りWebサイトには、Javaクラスライブラリのソースコードのほとんどが含まれているだけでなく、ソースコードの途中での視線やジャンプなどの非常に優れた最適化も含まれています。これにより、ソースコードの読み取り効率が大幅に向上することを保証できます。