Yige

Yige

Build

Javaコレクションクラスの基本概念

Java コレクションクラスの基本概念#

Java のコレクションフレームワークは大きくCollectionMapに分けられます;両者の違い:

  • Collection は単列コレクション;Map は双列コレクション
  • Collection の中で Set 系列のみ要素が一意である必要がある;Map ではキーが一意で、値は重複可能
  • Collection のデータ構造は要素に対して;Map のデータ構造はキーに対して。

Collection#

Collection は二大体系を含みます:

  • List: 順序があり、インデックスがあり、インデックスに基づいて値を取得でき、要素は重複可能
  • Set: 順序がなく、要素は重複できない

List#

含まれるもの:

  • ArrayList:底層は配列実装、検索速度が速く、追加削除速度が遅い
  • LinkedList:リンクリスト構造に基づいて実装されており、検索速度が遅く、追加削除速度が速い、特別なメソッドを提供し、先頭と末尾の要素操作(追加削除検索)を行う、スレッドセーフではない
  • Vector:配列構造、検索が速く、追加削除が遅い、スレッドセーフであるため効率が低い(廃止予定)

Set#

Set コレクションの特徴:要素が重複せず、順序がなく、インデックスがない。Set コレクションには以下があります:

  • HashSet: 順序がなく、要素にインデックスがなく、要素は重複できない。底層はハッシュテーブル。
  • LinkedHashSet: リンクリストとハッシュテーブルを共同で実装しているため、順序があり、要素が一意である特徴を持つ
  • TreeSet:二分木のデータ構造に基づき、要素が一意で、順序がない(要素を追加する際にソート可能)

Map#

Map は双列コレクションであり、キーと値のペアを保持し、キーは一意である必要があり、値は重複可能で、以下を含みます:

  • HashMap
  • LinkedHashMap
  • TreeMap

ツールクラス Collections#

Collections ツールクラスは Collection/Map に対する多くの操作を提供します

ソート操作(主に List インターフェース関連)#

  • reverse(List list):指定された List コレクション内の要素の順序を反転します
  • shuffle(List list):List 内の要素をランダムに並べ替えます(シャッフル)
  • sort(List list):List 内の要素を自然昇順でソートします
  • sort(List list, Comparator c):カスタムコンパレータを使用してソートします
  • swap(List list, int i, int j):指定された List コレクション内の i 位置の要素と j 位置の要素を交換します
  • rotate(List list, int distance):すべての要素を右に指定された長さだけシフトします。distance が size と等しい場合、結果は変わりません

検索と置換(主に Collection インターフェース関連)#

  • binarySearch(List list, Object key):二分探索法を使用して、指定されたオブジェクトの List 内のインデックスを取得します。前提としてコレクションはすでにソートされています
  • max(Collection col):最大要素を返します
  • max(Collection col, Comparator comp):カスタムコンパレータに基づいて最大要素を返します
  • min(Collection col):最小要素を返します
  • min(Collection col, Comparator comp):カスタムコンパレータに基づいて最小要素を返します
  • fill(List list, Object obj):指定されたオブジェクトで埋めます
  • frequency(Collection Object o):指定されたコレクション内で指定されたオブジェクトが出現する回数を返します
  • replaceAll(List list, Object old, Object new):置換します

不変コレクションの設定#

Collections には不変コレクションを返す三種類のメソッドがあります:

  • emptyXxx():空の不変コレクションオブジェクトを返します
  • singletonXxx():指定されたオブジェクトのみを含む不変コレクションオブジェクトを返します
  • unmodifiableXxx():指定されたコレクションオブジェクトの不変ビューを返します

その他#

  • disjoint(Collection<?> c1, Collection<?> c2): もし二つの指定されたコレクションに同じ要素がなければ、true を返します。
  • addAll(Collection<? super T> c, T... a): 指定された要素をすべて指定されたコレクションに追加する便利な方法
  • Comparator<T> reverseOrder(Comparator<T> cmp): 指定されたコンパレータの順序を強制的に反転させるコンパレータを返します。指定されたコンパレータが null の場合、このメソッドは reverseOrder () と同等です(言い換えれば、Comparable インターフェースを実装したオブジェクトコレクションの自然順序を強制的に反転させるコンパレータを返します)

参考リンク#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。