こんにちは!ISAMU(@burlesca_isa)です!
今回の対象読者は
- JavaのSetの使い方を知りたい方
目次
javaのSetの使い方
javaのSetは重複しないデータの集合を表すクラスです。
Setは大きく3種類あります。
- HashSet・・・要素の重複不可の基本的な集合
- LinkedHashSet・・・重複不可で要素の順番で取り出せる
- TreeSet・・・重複不可でソートした状態で取り出せる
構文
Set<型> 変数名 = new HashSet();
変数の型はSetインターフェースで宣言します。
例を示します
HashSetサンプルプログラム
出力結果
test2
test3
test1
test1は重複しているため削除されます。
また、HashSetは順序が保証されていないため、
格納順で出力されていません。
格納順で出力したい場合はLinkedHashSetを使用します。
LinkedHashSetサンプルプログラム
出力結果
test1
test2
test3
ソートしたい場合はTreeSetを使用します。
TreeSetサンプルプログラム
出力結果
test1
test2
test3
test4
Setに自作クラスを格納する
Setに自作クラスを格納するには2つのメソッドをオーバーライドする必要があります。
- hashCode()
- equals()
Setはデータの重複不可ですが、
同じデータかどうかを判断するために上記のメソッドを使用します。
自作クラスの場合はメンバ変数に対して重複させないようにすることができます。
例えば「name」と「age」をメンバ変数に持つクラスがあるとすれば、
「name」の重複は許さずに「age」の重複は許す、ということも可能です。
統合開発環境のEcripseを使用すれば自動的に作成することができます。
①[ソース]→[hashコードおよびequalsの作成]をクリック
②キーにしたいフィールドを選択してOKを押下する
※今回の場合はnameが重複できなくなる