セットとマップの違いとは?分かりやすく解説!

この記事には、アフィリエイト広告を利用しています。

スポンサーリンク


SetとMapの主な違いは、Setがコレクションインターフェースのサブタイプであるのに対し、Mapはコレクションインターフェースのサブタイプではないことです。

配列は同じ型のデータを格納する。

しかし、配列は一度作成すると変更することができません。

Javaなどのプログラミング言語では、データを動的に格納するためにコレクションを用意しています。

複数のオブジェクトを1つのグループとして格納することができる。

また、コレクションに対して、ソート、検索、挿入、削除などの操作を行うことが可能である

Javaでコレクションを実装するための基本インターフェースはCollectionと呼ばれます。

Collectionインタフェースを拡張した様々なインタフェースが存在します。

その一つがSetインタフェースです。

一方、Mapは別のインタフェースであるため、Collectionインタフェースを拡張することはない。

スポンサーリンク

セットとは

Setは、Collectionインターフェイスを拡張したインターフェイスです。

重複した値を含むことはできない。

HashSetとTreeSetがSetを実装しています。

Setインタフェースは、コレクションに対して操作を行うために、add、sizeなどのメソッドを提供する。

以下に例を示す。

HashSetはSet型のオブジェクトです。

文字列を格納することができる。

HashSetに要素を挿入するには、addメソッドを使用する。

  apple “という文字列が2つあっても、出力にはappleが1つしかない。

そのため、すでにSetに存在する要素は表示されません。

さらに、Setを非順序リストとして出力しています。

sizeメソッドは、Setに含まれるアイテムの数を示します。

次の例を参照してください。

ツリーセットは文字列を格納できるSet型のオブジェクトです。

ツリーセットへの要素の挿入はaddメソッドで行う。

  apple “という文字列が2つあっても、出力されるappleは1つだけです。

そのため、ユニークな要素のみを表示します。

さらに、Setは順序付きリストとして出力されます。

 sizeメソッドは、Setに含まれるアイテムの数を表示します。

地図とは

Map は、キーと値の対応関係を表すインターフェースです。

Collectionインターフェイスを継承していません。

そのため、Mapの動作は通常のCollection型とは異なります。

Mapは重複したキーを持つことができず、各キーは最大で1つの値に対応することができます。

Main Difference -  Set vs  Map 図3: HashMap を用いたプログラム

studentList は Map 型のオブジェクトである.文字列を格納することができる.studentList への要素の挿入は put メソッドで行う.Peter “には2つのレコードがあるが、1つしか表示されない。

HashMapは挿入された順序を維持しません。

一意な値のみを表示する。

Letters は Map 型のオブジェクトです。

文字列を格納することができる。

Lettersへの要素の挿入はputメソッドで行う。

B “には2つのレコードがあるが、1つのレコードしか表示されない。

TreeMapは挿入された順序を維持しない。

一意な値だけを表示する。

セットとマップの違い

定義

SetはCollection階層の中で、重複した要素を含むことができないインターフェースであるのに対し、Mapは一意のキーと値を対応付けるインターフェースです。

これがSetとMapの大きな違いです。

コレクションインターフェースとの関連

SetはCollectionインタフェースを拡張したインタフェースであり、 Mapは別のインタフェースです。

機能性

SetとMapの大きな違いは、その機能性です。

Setは一意な値を保存するのに役立つのに対し、Mapはキーと値の対応付けを表すインターフェースです。

結論

SetとMapの主な違いは、SetがCollectionインタフェースのサブタイプであるのに対し、MapはCollectionインタフェースのサブタイプでないことです。

タイトルとURLをコピーしました