ただ、ストレスなく生きたいだけのITエンジニアのブログ -- 弱小エンジニア脱却への道
【初心者向け】Javaのコレクションフレームワークとは-

【初心者向け】Javaのコレクションフレームワークとは?

こんにちは!ISAMU(@burlesca_isa)です!

今回の対象読者は

  • コレクションフレームワークについて知りたい方

コレクションフレームワークとは?

List Set Mapのデータ構造を提供するライブラリのことです。

データ構造とはデータをまとめて扱えるものですが、
代表的なものには配列があります。

配列は宣言した後、データの数を変更できないなど不便なことがあるため、
その時にコレクションフレームワークを使用します。

コレクションフレームワークを使用するために覚えること

  • コレクションフレームワークは大きく分けて3種類
  • 接頭辞で使い分ける
  • equals()メソッドとhashCode()をオーバーライド
  • 操作するためのメソッド

コレクションフレームワークは大きく分けて3種類

コレクションフレームワークは大きく分けてList Set Mapの3種類あります。

それぞれ下記の特徴があります。

  • List・・・サイズを気にすることのない配列
  • Set・・・要素の重複がない
  • Map・・・キーと値がある

これらはインターフェースです。
インターフェースに定義されたメソッドを使用してデータの操作をすることができます。

接頭辞で使い分ける

大きな種類はList Set Mapですが、
さらに接頭辞によって細かく分類されます。

  • Hash・・・検索機能
  • Linked・・・入力順序の保存機能
  • Tree・・・ソート機能

接頭辞がHashのものは順序は不定です。
順序通りに出力したい場合は接頭辞がLinkedを使用します。

Set

  • HashSet・・・同じ要素を重複して格納できない(順序不定)
  • LinkedHashSet・・・同じ要素を重複して格納できない(格納順に出力)
  • TreeSet・・・重複不可、ソートした状態で出力

Map

  • HashMap・・・キーと値をペアで格納し、キーで検索可能。(順序不定)
  • LinkedHashMap・・・キーと値で格納し、キーで検索可能(格納順に出力)
  • TreeMap・・・キーと値で格納し、キーで検索可能ソートした状態で出力

List

  • ArrayList・・・サイズが自動的に拡張する配列。
  • LinkedList・・・要素の挿入、削除の効率的。

ListはSetとMapと接頭辞が違います。

equals()メソッドとhashCode()のオーバーライド

コレクションフレームワークは
equals()メソッドとhashCode()メソッドをオーバーライドする必要があります。

これら2つのメソッドはObjectクラスに定義されています。
Objectクラスは暗黙的に継承されるクラスです。

なぜオーバーライドが必要かというと、
Setを使用する時など、同じオブジェクトかを判定するのに必要だからです。

これらはEcripseで自動生成することができます。

これらのやり方は、別の記事で解説します。

操作するためのメソッド

コレクションフレームワークのデータを操作するためにメソッドを使用します。

データの追加や削除などもメソッドを使用して行います。

List Set Mapのインターフェースに定義されているメソッドを使用します。

メソッドについてもコレクションフレームワークごとに記事を書きますので、
そこで解説します。

【初心者向け】Javaのコレクションフレームワークとは-
最新情報をチェックしよう!