2 つの特殊な Java コンテナ クラス List および Set の分析
コンテナ クラスにより、プログラミング効率とプログラミング機能が大幅に向上します。Java2 では、すべてのコンテナが SUN Company の Joshua Bloch によって再設計され、コンテナ クラス ライブラリの機能が強化されました。
Java2 コンテナ クラス ライブラリの目的は「オブジェクトを保存する」ことであり、これは 2 つのカテゴリに分類されます:
コレクション ---- 独立した要素のセット。通常、これらの要素は特定のルールに従います。 List は要素の特定の順序を維持する必要がありますが、Set は重複した要素を持つことができません。
マップ -- 「キーと値のペア」オブジェクトのセット。つまり、その要素はペアになったオブジェクトです。最も典型的なアプリケーションはデータ ディクショナリであり、他にも広範なアプリケーションがあります。さらに、Map は、すべてのキーで構成される Set とそのすべての値で構成される Collection、またはそのキーと値のペアで構成される Set を返すことができ、また、次の条件を満たす限り、配列のように多次元 Map を拡張することもできます。マップ内のキーと値のペアの各「値」「これは単なるマップです。
1. イテレーター
イテレーターは、開発者がシーケンスの基礎となる構造を知らなくても、シーケンス内のオブジェクトを反復して選択できるオブジェクトであるデザイン パターンです。イテレータは、作成コストが低いため、「軽量」オブジェクトと呼ばれることがよくあります。
Java の Iterator 関数は比較的単純で、一方向にのみ移動できます:
(1) メソッド iterator() を使用して、コンテナに Iterator を返すように要求します。 Iterator の next() メソッドが初めて呼び出されるとき、シーケンスの最初の要素が返されます。
(2) next() を使用して、シーケンス内の次の要素を取得します。
(3) hasNext() を使用して、シーケンス内にまだ要素があるかどうかを確認します。
(4) 反復子によって新たに返された要素を削除するには、remove() を使用します。
Iterator は、List 用に設計された Java イテレータの最も単純な実装であり、List を双方向に走査でき、List から要素を挿入したり削除したりすることもできます。
2. List の関数メソッド
List(インターフェース): 順序は List の最も重要な機能であり、要素の特定の順序が確実に維持されます。 List は Collection に多くのメソッドを追加し、List への要素の挿入と削除を可能にします (LinkedList にのみ推奨)。 List は ListIterator を生成できます。これを使用すると、List を 2 方向に走査したり、List の途中で要素を挿入したり削除したりすることができます。
ArrayList: 配列によって実装されたリスト。これにより、要素への高速なランダム アクセスが可能になりますが、リストの途中で要素を挿入したり削除したりするのは非常に遅くなります。 ListIterator は、LinkedList よりもはるかにコストがかかるため、要素の挿入や削除ではなく、ArrayList を後ろから前に走査するためにのみ使用する必要があります。
LinkedList: 順次アクセスは最適化されており、リストの途中での挿入と削除はコストがかかりませんが、ランダム アクセスは比較的遅くなります (代わりに ArrayList を使用できます)。これにはメソッド addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast() があります。これらのメソッド (どのインターフェイスまたは基本クラスにも定義されていません) を使用して、LinkedList をスタック、キュー、および双方向キューを使用します。
3. Set の関数メソッド
Set(インターフェース): Set は重複した要素を保存しないため、Set に保存される各要素は一意である必要があります。 Set に追加されるオブジェクトは、オブジェクトの一意性を保証するために、equals() メソッドを定義する必要があります。 Set と Collection はまったく同じインターフェイスを持っています。 Set インターフェイスは、要素の順序が維持されることを保証しません。
HashSet: 素早い検索のために設計されたセット。 HashSet に格納されるオブジェクトは hashCode() を定義する必要があります。
TreeSet: 順序を維持するセットで、最下位にツリー構造があります。これを使用して、セットから順序付けされたシーケンスを抽出します。
LinkedHashSet: HashSet のクエリ速度を持ち、内部的にリンク リストを使用して要素の順序 (挿入順序) を維持します。したがって、反復子を使用して Set を走査すると、結果は要素が挿入された順序で表示されます。
HashSet は、高速クエリ用に特別に設計されたハッシュ関数を使用して要素を並べ替えます。TreeSet は、内部でハッシュを使用して要素を並べ替え、リンクされたリストを使用して要素の順序を維持します。要素は挿入順に保存されているようです。独自のクラスを生成する場合、Set は要素の格納順序を維持する必要があるため、Comparable インターフェイスを実装し、compareTo() メソッドを定義する必要があることに注意してください。
上記は、List と Set という 2 つの特別な Java コンテナ クラスの分析です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MyBatis 動的 SQL タグの解釈: Set タグの使用法の詳細な説明 MyBatis は、豊富な動的 SQL タグを提供し、データベース操作ステートメントを柔軟に構築できる優れた永続層フレームワークです。このうち、Set タグは、UPDATE ステートメントで SET 句を生成するために使用され、更新操作でよく使用されます。この記事では、MyBatis での Set タグの使用法を詳細に説明し、特定のコード例を通じてその機能を示します。 SetタグとはMyBatiで使用するSetタグです。

リスト操作 //リストの先頭から値を挿入します。 $ret=$redis->lPush('city','guangzhou');//リストの末尾から値を挿入します。 $ret=$redis->rPush('city','guangzhou');//リストの指定範囲内の要素を取得します。 0 はリストの最初の要素を表し、-1 は最後の要素を表し、-2 は最後から 2 番目の要素を表します。 $ret=$redis->l

1: JSONArray を List にJSONArray 文字列を List に//JSONArray を初期化するJSONArrayarray=newJSONArray();array.add(0,"a");array.add(1,"b");array.add(2,"c") ; Listlist=JSONObject.parseArray(array.toJSONString(),String.class);System.out.println(list.to

要素を削除するメソッド: 1. delete() を使用して Set オブジェクトから指定した要素を削除します (構文は "setObj.delete(value);" です); 2. Clear() を使用して Set オブジェクト内のすべての要素を削除します。構文は「setObj.delete(value);」「setObj.clear();」です。

C# で List.Sort 関数を使用してリストを並べ替える方法 C# プログラミング言語では、リストを並べ替える必要があることがよくあります。 List クラスの Sort 関数は、この目的のために設計された強力なツールです。この記事では、C# で List.Sort 関数を使用してリストを並べ替える方法を紹介し、読者がこの関数をより深く理解し、適用できるように具体的なコード例を示します。 List.Sort 関数は List クラスのメンバー関数であり、リスト内の要素を並べ替えるために使用されます。この関数は受信します

リストを numpy に変換する方法: 1. numpy.array() 関数を使用します。関数の最初のパラメータは、1 次元または多次元のリストであるリスト オブジェクトです。2. numpy.asarray( ) 関数は、入力リストのデータ型を使用するために最善を尽くします; 3. numpy.reshape() 関数を使用して、1 次元リストを多次元 NumPy 配列に変換します; 4. numpy.fromiter を使用します() 関数の場合、関数の最初のパラメータは反復可能なオブジェクトです。

例 この例では、続行する前に、まず list.sort() の使用法を確認します。ここでは、リストを作成し、sort() メソッドを使用して昇順に並べ替えています - #CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)#リストを昇順で並べ替えますmyList .sort(

1. 最も一般的な方法 (必ずしも最良であるとは限りません) は、Arrays.asList(strArray) を使用することです。配列をリストに変換した後は、リストの追加または削除はできません。リストの確認と変更のみが可能です。それ以外の場合は、例外がスローされます。 。キーコード: Listlist=Arrays.asList(strArray);privatevoidtestArrayCastToListError(){String[]strArray=newString[2];Listlist=Arrays.asList(strArray);//変換されたリストにデータを挿入 list.add( 「1」
