ステーションbのコースの元のアドレス:https://www.bilibili.com/video/BV18J411W7cE?p = 220
1コレクション
コレクションクラスの特徴:ストレージモデルに可変ストレージスペースを提供し、保存されたデータ容量はいつでも変更できます。
実装クラスは、オブジェクトを作成およびインスタンス化できます。
コレクションの概要と使用法
- コレクションは、単一列コレクションの最上位インターフェイスであり、オブジェクトのグループを表します。これらのオブジェクトは、コレクション要素とも呼ばれます。
- JDKは、このインターフェースの直接実装を提供しません。より具体的なサブインターフェース(SetやListなど)の実装を提供します。
- コレクションオブジェクトの作成:ポリモーフィズムを使用します;特定の実装クラスArrayList
コレクション収集方法
アイデア:表示-ツールウィンドウ-構造(Alt + 7):すべてのクラス情報を表示
コレクショントラバーサル
Iterator:コレクションの特別なトラバーサルメソッドであるIterator。
ポリモーフィズムを使用してオブジェクトを返します。
2リスト
リストコレクションの概要と特徴
- 順序付けられたコレクション(シーケンス)により、ユーザーはリスト内の各要素の挿入位置を正確に制御できます。ユーザーは整数インデックスで要素にアクセスし、リスト内の要素を検索できます
- セットコレクションとは異なり、リストは通常、重複する要素を許可します
- 整然とした:保存された要素と取得された要素の順序は同じです。
- 繰り返し可能:保存された要素を繰り返すことができます
コレクション固有のメソッドを一覧表示する
同時変更例外
ConcurrentModificationException
イテレータのトラバース中に、コレクション内の要素の長さがコレクションオブジェクトを介して変更されるため、イテレータが要素を取得するときに、期待される変更値と実際の変更値の間に不整合が生じます。
解決策:forループを使用してトラバースし、コレクションオブジェクトを使用して対応する操作を実行します
リストイテレータ
- ListIterator:リストイテレータ。ListコレクションのlistIterator()メソッドによって取得され、Listコレクションの一意のイテレータです。
- プログラマーがリストを任意の方向にトラバースし、反復中にリストを変更し、リスト内のイテレーターの現在の位置を取得できるようにするリストイテレーター。
- ListIteratorの一般的なメソッド:
- E next():反復の次の要素を返します
- boolean hasNext():反復にさらに要素がある場合はtrueを返します
- E previous():リスト内の前の要素に戻ります
- boolean hasPrevious():リストを反対方向にトラバースしているときに、このリストイテレータにさらに要素がある場合はtrueを返します
- void add(E e):指定された要素をリストに挿入します
リストイテレータのadd()メソッドは、実際の変更された値を期待される変更された値に割り当てるため、同時変更の例外はスローされません。
拡張されたforループ
- 拡張:配列とコレクションのトラバーサルを簡素化
- コレクションはIterableインターフェースを継承します。このインターフェースを実装するクラスにより、オブジェクトを拡張forステートメントのターゲットにすることができます。
- JDK5の後に登場し、内部原理はイテレータイテレータです
3データ構造のスタックとキュー
データ構造は、コンピューターがデータを保存および整理する方法です。相互に1つ以上の特定の関係を持つデータ要素のコレクションを指します。
通常の状況では、慎重に選択されたデータ構造により、運用効率またはストレージ効率が向上します。
スタック
4リストコレクション
- リストコレクションの一般的に使用されるサブクラス:ArrayList、LinkedList
- ArrayList:リストコレクションのサイズ変更可能な配列の実装;高速クエリ、低速の追加と削除
- LinkedList:リストコレクションのリンクリストの実装;遅いクエリ、速い追加と削除
LinkedListコレクションの独自の機能 (基礎となる実装はリンクリストであり、いくつかのノード処理方法があります)