Javaでのコンテナー(コレクション)サポート

インターフェイスリスト
すべてのスーパーインターフェイス:
Collection、Iterable、
すべての既知の実装クラス:
AbstractList、AbstractSequentialList、ArrayList、AttributeList、CopyOnWriteArrayList、LinkedList、RoleList、RoleUnresolvedList、Stack、Vector

java.util.List extends Collection
コレクションインターフェースのメソッド:addAll();
boolean addAll(Collection <?extends E> c)
指定されたコレクションのすべての要素をこのコレクションに追加します(オプションの操作)。

Listインターフェースメソッド
public boolean add(E e):指定された要素をコレクションの末尾に追加します
public void add(int index、E e):指定された要素をコレクションの指定されたインデックスに追加し、元の要素は
public boolean に戻されますremove(E e):コレクションから指定された要素オブジェクトを削除します
public E remove(int index):コレクションから指定されたインデックスの要素を削除します。戻り値は削除された要素です
public E set(int index、E e):指定されたインデックスの要素を指定された要素に置き換えます。戻り値は、置き換え前の要素です
public E get(int index):指定されたインデックスの要素を取得し、要素を返します

コレクション単一列コレクションの最上位インターフェイス

リストインターフェース

機能:順序付けられ、インデックスが付けられた要素の繰り返しトラバーサル(反復):3つの方法1:通常のループ2.反復子()反復3:拡張されたループ

java.util.ArrayListはリスト
機能を実装します:順序付けられた要素とインデックス付き要素は繰り返すことができます。
基本的なデータ構造は配列クエリ、高速増加、低速削除、
安全でないスレッド、高効率です

java.util.Vector implements Listの
順序付けおよびインデックス付きの要素は繰り返すことができます。
基になるデータ構造は、配列クエリ、高速増加、低速削除、
スレッドセーフ効率の低下、
ブール値contains(オブジェクトo)です。要素にcontainsがあるかどうかを判断する方法は、オブジェクトのequalsメソッドに基づいて比較されます。文字列はequalsを書き換えるため、比較コンテンツの
Personはequalsメソッドをオーバーライドしません。デフォルトの比較はアドレスです。コンテンツを比較する場合、Personクラスはequalsメソッドをオーバーライドできます。

java.util.LinkedListはList
LinkdeListコレクションの機能を実装し、繰り返し可能なインデックス付き要素を並べ替えることができます。
基になるデータは、追加、削除、高速化が遅いリンクリストクエリです。
スレッドは安全でなく、効率的です。
一般的なメソッド
public void addFirst(E e)このリストの先頭に指定された要素を挿入します。
public void addLast(E e)は、指定された要素をこのリストの末尾に追加します。public
E getFirst()は、このリストの最初の要素を返します
public E getLast()は、このリストの最後の要素を返します。
public E removeFirst()は、このリストの最初の要素を削除して返します
public E removeLast()は、このリストの最後の要素を削除して返します
List list = new LinkedList();この方法でオブジェクトを作成するときは、独自の一意を使用できません
LinkedList メソッドはListのサブクラスであり、List内のLinkedListメソッドを使用できます。

java.util.Set extends Collection

インターフェースを設定:

機能:固有の要素(反復方法:1. forループ2.イテレーター()反復)
一般的に使用される2つの実装クラス

  1. HashSet:順不同で一意

  2. LinkedHashSet:順序付きで一意

  3. java.util.HashSetの
    機能(基にな​​るデータはハッシュテーブルです):順序付けされていない一意の
    hashCode()メソッドとequals()メソッド
    最初にオブジェクトのhashCodeを比較します
    。hashCodeが異なる場合、2つのオブジェクトは同じではなく、コレクションに追加されます
    。hashCodeが同じである場合は、説明できる必要がありますオブジェクトは同じですか?
    同じ2つのオブジェクトが同じハッシュ値を持つ可能性があることは説明できませんが、異なるコンテンツと異なるコンテンツをコレクションに追加する必要がある
    ため、equalsメソッドを引き続き比較する必要があります。
    同じものは追加されません。
    異なるものはコレクションに追加されます。

HashSetのjava.util.LinkedHashSet拡張
特性のA LinkedHashSetのセット:ユニークな発注
データリストの基礎となる(二重リンク)+ハッシュテーブルの
リスト要素だけの要素があることを確認するために秩序あるハッシュテーブルを保証する
のhashCodeを確保するために、ユニークな方法で要素に等しい
ハッシュコードを比較します
セットへの異なる追加、
同じ比較は
同じ、追加されない、
異なる追加に等しい

オブジェクトクラスint hashCode()は、オブジェクトのハッシュ値を返します。ハッシュ値
は、アドレス値に基づいて計算された一意の値として理解できる一意の値です。意味はありません。
唯一の意味は、オブジェクトの
ハッシュ値と人の誕生を区別することです。 ID番号
2つのオブジェクトのハッシュ値を比較するためにサブクラスがこのメソッドをオーバーライドしない場合、それはアドレス値を比較しています
。サブクラスはこのメソッドをオーバーライドして任意の値を返すことができます

メンバー変数に従ってhashCodeメソッドを書き換えます。
プログラムの効率を上げるには、hashCodeをできるだけ少なく比較し、等しい値を比較してみてください。Person
の名前と経過時間に従ってhashCodeメソッドを書き換える必要
があります。メンバー変数には2つのタイプがあります。1つは参照タイプで、もう1つは基本タイプです。
参照型のハッシュ値は、独自のhashCodeメソッドを呼び出すことです。基本型のハッシュ値は、独自の
名前です。hashCode()

元の記事6件を公開 賞賛された8件 訪問数138

おすすめ

転載: blog.csdn.net/qq_42848910/article/details/105115872