ふりぶろぐ
Web Engineer's Blog
Java

【Java】Setの初期化とListへの変換

Java

毎回調べているので覚え書きとして残しておきます。

なにか調べたらブログの記事に残しておこう。

Setとは

重複する値を持たないList型のイメージ。

例えば、Listの場合は “a” という文字列を2つ追加した場合、size()は2を返します。

重複する値を追加しているのでSetの場合、size()は1を返します。

IDなんかを変数で持ちたい場合にSetを使うことが多いです。

ListからSetに変換するだけで重複が削除できるのは便利ですね。

Setの初期化

いろいろやり方があるみたいだけど、HashSetを使うのが良さそう。(なんとなく)

// HashSetを使った初期化
Set<Long> hashSetIds = new HashSet<>();

// ArraySetを使った初期化(あんまり良くないかも)
Set<Long> arraySetIds = new ArraySet();

// Set.ofを使った初期化
Set<Long> setOfIds = Set.of();

// Collections.emptySetを使った初期化(こんなのもできそう)
Set<Long> emptySetIds = Collections.emptySet();

List→Setの変換

ListからSetへの変換です。

変換するだけで重複を削除できます。

基本的にはListと同じ扱いができます。

// Listの初期化
List<Long> list = new ArrayList<>();

// HashSetを使った初期化
Set<Long> hashSetIds = new HashSet<>(list);

Set→Listの変換

ついでに逆変換のSetからListへの変換です。

逆になっただけでほとんど同じですね。

// HashSetを使った初期化
Set<Long> hashSetIds = new HashSet<>();

// Listへ変換
List<Long> hashSetListIds = new ArrayList<>(hashSetIds);

まとめ

Setの初期化とListへの変換についてでした。

Listに比べて使う機会が少ないだけで難しくはないので覚えておきたい。

Setは便利ですね。

SetとListをうまく使い分けましょう。

ABOUT ME
りーふ
たまにブログを書いてるWebエンジニア。 サーバーサイドメインでインフラとフロントエンドもたまにやります。 Javaが得意。 Play Frameworkが好き。 本業は迷惑をかけない程度に手を抜くスタイル。 意識高い系は苦手。