はじめに
今回は、javaの「Set」の使い方について、勉強したことを記載していきたいと思います。
Setとは
Setとは、重複のないデータの集まりを扱うために用意されたクラスになります。Set要素は全て一意の値となるため重複する要素は無視されます。
実装するクラスには次が用意されています。
メソッド名 | 詳細 |
HashSet | 要素に順序がなく、追加された順序とは無関係に要素を格納します。 |
LinkedHashSet | 要素に順序を持ったクラスで、追加された順序で要素を格納します。 |
TreeSet | ツリー構造を持ったクラスです。自然順序で要素が格納されます。 |
例
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Set<String> hashSet = new HashSet<>();
hashSet.add("a");
hashSet.add("c");
hashSet.add("e");
hashSet.add("b");
hashSet.add("d");
hashSet.add("a"); //重複は無視
// 順序なし
System.out.println(hashSet);
Set<String> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add("1");
linkedHashSet.add("3");
linkedHashSet.add("5");
linkedHashSet.add("2");
linkedHashSet.add("4");
// 格納順 1,3,5,2,4
System.out.println(hashSet);
Set<String> treeSet = new TreeSet<>();
treeSet.add("1");
treeSet.add("3");
treeSet.add("5");
treeSet.add("2");
treeSet.add("4");
// 格納順 1,2,3,4,5
System.out.println(hashSet);
}
Setに要素を追加・削除
操作 | メソッド名 | 詳細 |
追加 | add(値) | リストに値を追加する |
削除 | remove(index) | 指定したindexを削除する |
例
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Set<String> hashSet = new HashSet<>();
// 追加
hashSet.add("a");
hashSet.add("c");
hashSet.add("e");
hashSet.add("b");
hashSet.add("d");
hashSet.add("a"); // 重複は上書き
System.out.println(hashSet);
// 削除
hashSet.remove("a");
System.out.println(hashSet);
}
Setの繰り返し処理
foreach文やforeachメソッドを使用することで繰り返し処理を実施することができます。
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Set<String> hashSet = new HashSet<>();
// 追加
hashSet.add("a");
hashSet.add("c");
hashSet.add("e");
hashSet.add("b");
hashSet.add("d");
for (String value : hashSet) {
System.out.println(value);
}
hashSet.forEach(x -> System.out.println(x));
}
その他のメソッド
メソッド名 | 詳細 |
clear | Setの全ての要素を削除する |
contains | 指定した要素がSetに含まれているか判定 |
size | Setの要素数 |
isEmpty | Setに要素がない場合、True |
ドキュメント
【公式ドキュメント】
Java SE Specifications (oracle.com)
最後に
Javaの環境構築は、この記事を参照してみてください。
【開発環境構築】VS CodeでJavaを使用するための環境構築を実施する – SEもりのLog (selifemorizo.com)
以上、ログになります。
これからも継続していきましょう!!
コメント