(H)-Javaコレクションを読んでJavaのコア技術10

コレクションフレームワーク
のJavaコレクションクラスライブラリは、インタフェース(インタフェース)の実装(実装)から分離しています。
インタフェース参照コレクションクラスは、クラスを使用するようにスイッチを容易にするために使用されてもよいです。

Queue<Customer> expresslane = new CircularArrayQueue<>(100);
 expressLane.add(new Customer("Harry"));
 //or
 Queue<Customer> expressLane = new LinkedListQueue<>(100);

上記円形アレイは有界集合、すなわち、限られた容量であるキューです。プログラムで収集されるオブジェクトの数が上限でない場合、それは達成するために、リンクされたリストを使用するのが最適です。リストには、挿入しやすく、削除,,しかし、多くの問題のために見ています。
共通インタフェースのセット
コレクションインタフェース、およびイテレータ方法、反復子メソッドの戻りオブジェクトを実装イテレータインターフェースことが追加されています。
イテレータのインターフェイスは、次の方法は、あなたが個別に、コレクション内の各要素にアクセスする次を呼び出す前のhasNextメソッドを呼び出すことができます。この方法は、複数のアクセスのための要素だけでなく、イテレータオブジェクト場合はtrueを返します。

ここに画像を挿入説明
ループ「ごとに、」一緒に仕事を反復処理可能なインタフェースオブジェクトのいずれかを用いて実装することができ、このインターフェースは一つだけ含まれている
抽象メソッドは、Collectionインタフェースは、反復処理可能なインタフェースを拡張します。そのため、標準ライブラリの任意のセットのために「foreachの」ループを使用することができます。
イテレータは、要素を削除するインターフェイスのメソッドが返されたときに削除nextメソッドの最後の呼び出し。

一般的な使用法は
、Collectionインタフェースは、すべてのクラスがこれらのメソッドを実装する必要があり、便利なジェネリックメソッドの数を宣言します。
したがって、クラスAbstractCollection、それは大きさやイテレータ抽象メソッドの基本となりますが、この方法は、汎用ルーチンを提供し、ユーザーフレンドリーな
)共通の一般的な方法は、((オブジェクトobj)とremovelfが含まれています

特定のコレクションここに画像を挿入説明

他のクラスの最後には、外部クラスをマップクラス地図Mapインタフェースの目的を達成するために、Collectionインタフェースを実装します。
リスト
のJavaプログラミング言語では、すべてのリストは、実際には双方向リンクされている
インタフェースのイテレータオブジェクトが実装イテレータLinkedList.iterator()//リターン
LinkedList.listitserator()リターンが達成イテレータオブジェクトlistitseratorインターフェース
2の間を違いがあるため、listitseratorあるイテレータがセット位置を説明する addメソッドは、イテレータの位置に依存しますので、こと、責任がある、メソッド・イテレータを追加しません。この方法は、次または前のメソッドの戻り上の元素で置換新しい要素で呼を設定します。以下のための変更の同時リスト奇妙な例外の料理を検出しました。リストは、リストへの構造変化を追跡するための唯一の責任があり、例えば、要素、削除要素を追加します。セット方法は、構造変化を考慮されていません。
この方法は、カーソルを用いて決定することができるか、反復子反復子listitserator位置
配列
ArrayListオブジェクトは、動的再配置のアレイをカプセル化します。
同期が必要とされていない場合ArrayListの代わりに、ベクターの、推奨されます。
セットをハッシュ
すばやくオブジェクトを見つけるために、各オブジェクトのハッシュ(ハッシュコード)と呼ばれる整数を、ハッシュテーブルを計算し、必要。これは、整数ドメイン・オブジェクト・インスタンスによって生成されるハッシュコードです。
Javaでは、ハッシュテーブルは、リンクされたリストの配列を実装しました。各リストは、次のように保存され、バケット(バケット)と呼ばれています
ここに画像を挿入説明
ハッシュテーブルには、いくつかの重要なデータ構造を実装するために使用することができ、欠点は、要素の順序が制御できないと表示されています。最もシンプルなタイプが設定されています。
要素のセットは、コレクション要素を繰り返されていません。あなたが追加したいオブジェクトを見つけるの集中の最初のセットにメソッドを追加し、そうでない場合は、このオブジェクトは、それに追加されます。
ツリーセットの
ツリーセットは、順序付けられたコレクション(分別収集)oは、コレクションの要素に任意の順序で挿入することができるされています。コレクションを横断した場合、各値は、自動的にプレゼンテーションの順にソートされます。
リターンをComparator.comparingはコンパレータ、アイテム::のgetDescriptionは、着信方法を比較します

new TreeSet<>(Comparator.comparing(Item::getDescription));

両端キューキューと
人々が効率的に頭と尾で同時に要素を追加または削除することができます。キューの中央に要素を追加することをサポートしていません。
プライオリティキュー
エレガントで効率的なデータ構造を使用して、優先度キューはヒープ(ヒープ)と呼ばれます。ヒープは、自己調整二分木であり、ツリーの要素をソートする時間を費やすことなく、ルートへの最小の要素を可能にし、追加(ADD)、削除(remore)動作を行います。
要素の優先度キュー(プライオリティキュー)は任意の順序で挿入され、常に順にソートすることができる
検索。

公開された15元の記事 ウォンの賞賛1 ビュー128

おすすめ

転載: blog.csdn.net/qq_17236715/article/details/105025853