コレクションインターフェイス:コレクションは最も基本的なコレクションインターフェイスであり、Javaコレクション(セットとリストのみを含む)に適した一般的な方法を宣言しています。接続とマップを継承する両方の両方を設定してリストします
収集インターフェイスの方法:
Boolean Add(オブジェクトO):コレクションにオブジェクトへの参照を追加します
void clear():コレクション内のすべてのオブジェクトを削除します。つまり、これらのオブジェクトへの参照を保持しなくなります
boolean isempty():セットが空であるかどうかを判断します
Boolean contains(オブジェクトO):特定のオブジェクトへの参照がコレクションに保持されているかどうかを判断します
Iterar Iterator():コレクション内の要素を繰り返すために使用できるイテレーターオブジェクトを返します
boolean remove(オブジェクトo):コレクションからオブジェクトへの参照を削除します
int size():コレクション内の要素の数を返します
Object [] toArray():コレクション内のすべての要素を含む配列を返します
概要:Iterator()およびtoArray()メソッドは、コレクションのすべての要素に使用されます。前者はイテレーターオブジェクトを返し、後者はコレクション内のすべての要素を含む配列を返します。
Iteratorインターフェイスは、次の方法を宣言します。
hasnext():コレクション内の要素が横断されているかどうかを決定します。そうでない場合は、trueを返します
次():次の要素を返します
remove():コレクションから次の()メソッドで返された以前の要素を削除します。
set(set):setは、コレクションの最も単純なタイプです。コレクション内のオブジェクトは特定の方法でソートされておらず、重複するオブジェクトはありません。セットインターフェイスは、主に2つの実装クラスを実装しています。
ハッシュセット:ハッシュセットクラスはハッシュアルゴリズムを使用してコレクション内のオブジェクトにアクセスし、アクセス速度は比較的高速です。
ツリーセット:Treesetクラスは、コレクション内のオブジェクトをソートできるソートセットインターフェイスを実装しています。
セットの使用:オブジェクトへの参照を保存し、オブジェクトを重複していません
set set = new hashset(); string s1 = new String( "hello"); string s2 = s1; string s3 = new string( "world"); set.add(s1); set.add(s2); set.add(s3);
System.out.println(set.size()); //印刷コレクションのオブジェクトの数は2です。
SetのADD()メソッドは、オブジェクトがコレクションに保存されているかどうかをどのように決定しますか?
boolean isexists = false; iterator iterator = set.iterator(); while(it.hasnext()){string oldstr = it.next(); if(newtr.equals(oldstr)){isexists = true;}}}}リスト:リストの特徴は、その要素が線形方法で保存され、重複するオブジェクトをコレクションに保存できることです。
リストインターフェイスの主な実装クラスには次のものがあります。
arrayList():長さを配列に変更できることを表します。要素にランダムにアクセスでき、ArrayList()に要素を挿入して削除する速度は遅いです。
LinkedList():実装でリンクリストデータ構造を使用します。高速挿入と削除、遅いアクセス。
リストのランダムアクセスの場合、特定の場所にある要素をランダムに取得することのみです。 get(int index)リストのメソッドは、パラメーターインデックスで指定されたインデックス位置のコレクション内のオブジェクトに戻し、添え字は「0」から始まります。コレクション内のすべてのオブジェクトを取得する最も基本的な2つの方法:
1:ループとget()メソッドの場合:
for(int i = 0; i <list.size(); i ++){system.out.println(list.get(i));}2:Iteratorを使用してください:
iterator it = list.iterator(); while(it.hashnext){system.out.println(it.next);}
マップ:マップは、マップキーオブジェクトと値オブジェクトのコレクションです。それの各要素には、一対のキーオブジェクトと値オブジェクトが含まれています。
コレクションインターフェイスからマップが継承されない場合、キーオブジェクトが指定されるたびに、対応する値オブジェクトが返されます。
マップの一般的な方法:
1操作の追加と削除:
オブジェクトプット(オブジェクトキー、オブジェクト値):コレクションに要素を追加します
オブジェクト削除(オブジェクトキー):キーに関連する要素を削除します
void putall(マップT):特定の画像からすべての要素を画像に追加します
void clear():画像からすべてのマップを削除します
2クエリ操作:
Object Get(Object Key):キーワードキーに関連する値を取得します。マップコレクションの重要なオブジェクトは、繰り返されることは許可されていません。つまり、equals()メソッドによって比較される2つの重要なオブジェクトの結果がfalseです。ただし、複数のキーを同じ値オブジェクトのみにマッピングできます。
接続:コレクションユーティリティクラス。接続は、Javaコレクションの実用的な静的方法を提供します
要約:
Javaコレクションの基本的な使用法が要約されています。上記は、最も一般的に使用されるJavaコレクションです。詳細については、JDKヘルプドキュメントを参照してください。ははは、マップのアプリケーションがもっとたくさんあり、これです。接続は、リスト /マップの多くの実用的な方法を提供します。これは、毎日の開発に非常に役立ちます。
boolean containskey(オブジェクトキー):画像にキーワードキーがあるかどうかを判断します
boolean containsValue(オブジェクト値):画像に値があるかどうかを判断します
int size():現在の画像のマップ数を返します
boolean isempty():画像にマッピングがあるかどうかを判断します
リストは、操作を並べ替えたり編集したりせずに、オブジェクトを入力する順序でオブジェクトを保存します。セットは各オブジェクトに対して1回のみを受け入れ、独自の内部ソートメソッドを使用します(通常、要素が順序ではなく、セットに属しているかどうかのみを気にします - それ以外の場合はリストを使用する必要があります)。
Mapは各要素のコピーも保存しますが、これは「キー」に基づいており、Mapには組み込みのソートも含まれているため、要素が追加される順序は気にしません。要素が追加される順序が重要な場合は、LinkedHashsetまたはLinkedHashmapを使用する必要があります。
リスト関数方法:
実際には2つのタイプがあります。1つは基本的なアレイリストであり、要素へのランダムアクセスの利点があり、もう1つはより強力なLinkedListであり、高速ランダムアクセス用に設計されていませんが、より一般的なメソッドセットがあります。
リスト:注文はリストの最も重要な機能です。特定の要素の順序が維持されることを保証します。リストは、コレクションに多くのメソッドを追加し、リストの中央に要素を挿入して削除します(これはLinkedListにのみ推奨されます。)リストは、リストを使用して2つの方向からリストをトラバースしたり、リストの中央から要素を挿入して削除したりできます。
ArrayList:Arrayによって実装されたリスト。要素へのランダムなアクセスを迅速に使用できますが、リストの中央に要素を挿入して削除すると遅くなります。 ListIteratorは、要素を挿入して削除するのではなく、アレイリストを背景からフォワードに繰り返すためにのみ使用する必要があります。それはLinkedListよりもはるかに高価だからです。
LinkedList:シーケンシャルアクセスが最適化されており、リストの中央への挿入と削除のオーバーヘッドはそれほど高くありません。ランダムアクセスは比較的遅いです。 (代わりにArrayListを使用してください。)次の方法もあります:addfirst()、addlast()、getFirst()、getLast()、removeFirst()、removelast()。これらのメソッド(任意のインターフェイスまたはベースクラスで定義されていません)は、LinkedListをスタック、キュー、および双方向キューとして使用します。
セットの関数方法:
セットはコレクションとまったく同じインターフェイスを持っているため、前面の2つの異なるリストとは異なり、追加の機能はありません。実際、セットはコレクションですが、動作は異なります。 (これは、継承と多型思考の典型的な応用です:異なる動作を実行します。)セットは重複する要素を節約しません(要素を判断する方法については、より責任があります)
セット:セットに重複する要素を保存しないため、セットに保存されている各要素は一意でなければなりません。セットに追加された要素は、オブジェクトの一意性を確保するためにequals()メソッドを定義する必要があります。セットには、コレクションとまったく同じインターフェイスがあります。セットインターフェイスは、メンテナンス要素の順序を保証しません。
ハッシュセット:迅速な検索のために設計されたセット。ハッシュセットに保存されているオブジェクトは、ハッシュコード()を定義する必要があります。
ツリーセット:保存順序で設定すると、基礎となるレイヤーはツリー構造です。それを使用して、セットから順序付きシーケンスを抽出します。
LinkedHashset:ハッシュセットのクエリ速度があり、リンクされたリストを内部的に使用して要素の順序を維持します(挿入順序)。したがって、イテレーターを使用してトラバースセットを使用すると、結果は要素が挿入される順序で表示されます。
マップの関数方法:
Method Put(オブジェクトキー、オブジェクト値)は、「値」と「値」に関連付けられた「キー」(それを使用して検索)を追加します。メソッドGET(オブジェクトキー)は、指定された「キー」に関連付けられた「値」を返します。 containskey()を使用して、containsvalue()を使用して、「キー」または「値」がマップに含まれているかどうかをテストできます。
標準のJavaクラスライブラリには、Hashmap、Treemap、Linkedhashmap、WeakHashmap、IdentityHashmap:いくつかの異なるマップが含まれています。それらはすべて同じ基本的なインターフェイスマップを持っていますが、動作、効率、ソート戦略、オブジェクトのライフサイクルの保存、「キー」に相当するものを決定します。
実行効率は、MAPの大きな問題です。 Get()が何をするかを見ると、ArrayListで「キー」を検索することが非常に遅い理由がわかります。そして、これがハッシュマップの高速化です。 HashMapは、ハッシュコードと呼ばれる特別な値を使用して、キーのスロー検索を置き換えます。
「Code」はオブジェクトのINT値を表すために「比較的ユニーク」であり、オブジェクトの特定の情報を変換することで生成されます。 HashCode()は基本クラスオブジェクトで定義されているメソッドであるため、すべてのJavaオブジェクトはハッシュコードを生成できます。
HashMapは、クイッククエリのためにオブジェクトのHashCode()を使用します。この方法では、パフォーマンスを大幅に改善できます。
マップ:「キー価値のペア」の相関を維持して、「キー」を介して「値」を見つけることができるようにします。
Hashmap:MAPはハッシュテーブルの実装に基づいています。 「キー価値ペア」の挿入とクエリのオーバーヘッドは固定されています。容量容量と負荷係数荷重係数をコンストラクターを介して設定して、コンテナの性能を調整できます。
LinkedHashmap:Hashmapに似ていますが、それを繰り返すと、「キー値ペア」がその挿入順序、または最近使用されていない順序(LRU)です。 Hashmapよりも少し遅いだけです。リンクされたリストを使用して内部順序を維持するため、繰り返しアクセスしたときに送信する方が速いです。
Treemap:赤と黒の木のデータ構造に基づく実装。 「キー」または「キー値のペア」を見ると、それらはソートされます(順序は比較またはコンパレータによって決定されます)。 Treemapは、得た結果がソートされているという事実によって特徴付けられます。 Treemapは、サブツリーを返すことができるsubmap()メソッドを備えた唯一のマップです。
WeakHashmap:弱いキーマップ、マップで使用されるオブジェクトもリリースできます。これは、特別な問題を解決するように設計されています。マップの外側の参照が「キー」を指していない場合、この「キー」はガベージコレクターによってリサイクルできます。
識別Hashmap:equals()の代わりに==を使用して「キー」を比較します。特別な問題を解決するために特別に設計されています。