カテゴリ: Kotlin 更新日: 2026/05/28

Kotlinの可変セット(MutableSet)の作り方と使い方をやさしく解説!初心者でも安心の重複なしデータ管理

Kotlinの可変セット(MutableSet)の作り方と使い方
Kotlinの可変セット(MutableSet)の作り方と使い方

先生と生徒の会話形式で理解しよう

生徒

「Kotlinで、同じデータが入らないようにして、あとから追加したり削除したりしたいです!」

先生

「それなら『可変セット(MutableSet)』を使うといいですよ。データの重複を自動で防ぎながら、追加や削除もできます。」

生徒

「可変セットって、初心者でも使えますか?どうやって使うんですか?」

先生

「もちろんです。KotlinのMutableSetはとてもシンプルで、パソコン初心者でも簡単に使えますよ。これからやさしく説明しますね!」

1. 可変セット(MutableSet)とは?初心者向けにわかりやすく解説

1. 可変セット(MutableSet)とは?初心者向けにわかりやすく解説
1. 可変セット(MutableSet)とは?初心者向けにわかりやすく解説

Kotlin(ことりん)では、たくさんのデータを整理して保管するための「箱」のような仕組みをコレクションと呼びます。その中でも、特にユニークな特徴を持つのがMutableSet(可変セット)です。

MutableSetを一言でいうと、「重複を絶対に許さない、中身を自由に入れ替えられる魔法の袋」です。具体的には、以下の3つの大きなポイントがあります。

  • データの重複を自動でシャットアウト: 同じデータを2回入れようとしても、2回目は無視されます。
  • 後から中身を変更できる: プログラムの途中で、新しいデータを足したり、不要なデータを捨てたりできます。
  • 順番を固定しない: 基本的に、データを入れた順番を厳密に守るよりも「何が入っているか」を重視します。

例えば、あなたが「文化祭のスタンプラリー」を管理するアプリを作っていると想像してみてください。同じ人が何度スタンプを押しても、カウントは「1回」だけにしたいですよね。そんな時に、このMutableSetが自動で重複をチェックしてくれるので、非常に便利です。

イメージしてみよう:
「リスト(List)」は、出席番号順に並んだ名簿のようなもの。同じ名前が何度出てきてもOKです。
「セット(Set)」は、カゴの中に入れたボールのようなもの。同じ色のボールは1つしか入れられないルールがある、と考えるとわかりやすいですよ!

それでは、実際にどのように動くのか、簡単なプログラムでイメージを掴んでみましょう。


fun main() {
    // 1. 重複を許さない「お買い物リスト」を作ってみる
    // 「りんご」を2回書いても、セットは賢いので1つにまとめてくれます
    val shoppingSet = mutableSetOf("りんご", "バナナ", "りんご")
    
    // 画面に表示すると、りんごは1つしか出てきません
    println("現在のカゴの中身: $shoppingSet")
}

現在のカゴの中身: [りんご, バナナ]

このように、プログラミング未経験の方でも、データの重複を気にせずにどんどん追加できるのがMutableSetの強みです。難しいロジックを書かなくても、Kotlin側で「これ、もう入ってるよ!」と判断してくれるので、ミスが少ない安全なプログラムを書くことができます。

2. KotlinでMutableSetを作る基本の書き方

2. KotlinでMutableSetを作る基本の書き方
2. KotlinでMutableSetを作る基本の書き方

Kotlinで中身を自由に書き換えられる箱(コレクション)を作りたいときは、mutableSetOfという魔法の言葉を使います。Set(セット)の最大の特徴は、「同じものを重複して持てない」という点です。例えば、買い物リストを作る際に同じものを二度書かないように自動で整理してくれるイメージです。

まずは、プログラミングが初めての方でも分かりやすい「好きな果物リスト」を例に、基本的な書き方を見てみましょう。


fun main() {
    // 1. MutableSet(中身を変更できるセット)を作成する
    val fruits = mutableSetOf("りんご", "バナナ", "みかん")

    // 2. 同じ「りんご」をもう一度追加しようとしてみる
    fruits.add("りんご")

    // 3. 結果を表示する(重複した「りんご」は無視されます)
    println(fruits)
}

[りんご, バナナ, みかん]

上記のコードでは、mutableSetOf()を使って「りんご・バナナ・みかん」が入った可変セットを作成しました。途中で「りんご」をもう一度追加する命令(add)を書いていますが、実行結果を見ると「りんご」は1つしか表示されません。これがSetの便利な仕組みです。

このように、「順番は気にしないけれど、中身の重複は絶対に避けたい」という場面で、このMutableSetは非常に強力な味方になってくれます。

3. データを追加してみよう(addメソッドの使い方)

3. データを追加してみよう(addメソッドの使い方)
3. データを追加してみよう(addメソッドの使い方)

作成したMutableSet(ミュータブルセット)に新しいデータを追加したいときは、add()という命令(メソッド)を使います。プログラミングに慣れていない方でも、リストに項目を書き足すような感覚で簡単に操作できます。

ただし、セットには「重複するデータは無視される」という重要なルールがあります。実際にコードを動かして、その挙動を確認してみましょう。


fun main() {
    // 1. 最初に「赤」と「青」が入ったセットを作る
    val colors = mutableSetOf("赤", "青")
    
    // 2. 新しく「緑」を追加する
    colors.add("緑")
    
    // 3. すでにある「赤」をもう一度追加してみる
    colors.add("赤") 
    
    // 結果を表示
    println(colors)
}

[赤, 青, 緑]

実行結果を見ると、2回追加しようとした「赤」は1つしか存在しません。これはエラーではなく、セットが自動的にデータの重複をチェックして、常に一意(ユニーク)な状態を保ってくれているからです。

この特性は、例えば「Webサイトの訪問者のIDを記録する」ときや「アンケートの回答から重複を除きたい」ときなど、実務的なプログラムでも非常によく使われる便利な機能です。追加したいデータがすでに存在するかどうかを自分で判定する必要がないため、コードをスッキリと記述できます。

4. データを削除してみよう(removeメソッドの使い方)

4. データを削除してみよう(removeメソッドの使い方)
4. データを削除してみよう(removeメソッドの使い方)

リストにデータが増えすぎたり、古い情報がいらなくなったりした時は、remove()(リムーブ)というメソッドを使って、特定のデータをピンポイントで削除できます。プログラミングでは、不要なデータを整理してメモリを節約することも大切なポイントです。

削除する際は、「どのデータを消したいか」をカッコの中に指定するだけ。他のデータには影響を与えず、指定したものだけをきれいに取り除くことができます。実際の動きを、Kotlinのサンプルコードで確認してみましょう。


fun main() {
    // 3種類の動物が入ったセットを作成
    val animals = mutableSetOf("いぬ", "ねこ", "うさぎ")
    
    // "ねこ"を指定して削除する
    animals.remove("ねこ")
    
    // 結果を表示(ねこが消えて、いぬとうさぎだけが残る)
    println(animals)
}

[いぬ, うさぎ]

実行結果を見ると、指定した「ねこ」だけが消え、他のデータは順番を維持したまま残っているのがわかりますね。もし、存在しないデータ(例:「ぞう」など)を削除しようとしても、エラーにはならず単に無視されるだけなので、初心者の方でも安心して使うことができます。

このように、remove()を使えば、まるで消しゴムで消すような感覚で、自由自在にコレクションの中身をメンテナンスすることが可能です。

5. MutableSetの活用例:イベントの出席管理

5. MutableSetの活用例:イベントの出席管理
5. MutableSetの活用例:イベントの出席管理

同じ人を何度もカウントしたくないとき、MutableSetがとても便利です。イベントの出席者リストなどに使えます。


fun main() {
    val attendees = mutableSetOf<String>()
    attendees.add("たろう")
    attendees.add("はなこ")
    attendees.add("たろう") // 同じ人は2回カウントされない

    println("出席者:")
    for (name in attendees) {
        println("- $name")
    }
}

出席者:
- たろう
- はなこ

このように、MutableSetを使うと「同じ人が何度も追加されて困る」問題を解決できます。

6. データの存在を確認する方法

6. データの存在を確認する方法
6. データの存在を確認する方法

contains()メソッドを使えば、あるデータがセットに含まれているかを確認できます。


fun main() {
    val foods = mutableSetOf("ラーメン", "カレー", "うどん")

    if (foods.contains("カレー")) {
        println("カレーはリストにあります!")
    } else {
        println("カレーはリストにありません。")
    }
}

カレーはリストにあります!

探したいデータが入っているかを調べられるのも、MutableSetの便利な使い方のひとつです。

Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。

基礎からわかるKotlinをAmazonで見る

※ Amazon広告リンク

7. MutableSetをクリアする(全削除)

7. MutableSetをクリアする(全削除)
7. MutableSetをクリアする(全削除)

セットの中身をすべて消したいときは、clear()メソッドを使います。


fun main() {
    val items = mutableSetOf("A", "B", "C")
    items.clear()
    println(items)
}

[]

このように、中身を一気にリセットできるので、初期化したいときなどにも使えます。

関連セミナーのご案内

【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分

「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。

本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。

具体的な体験内容と環境

【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。

【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。

この60分で得られる3つの体験

1. 自分のパソコンが「開発基地」に

プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。

2. プログラミングの「仕組み」がスッキリ

「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。

3. 「読みやすい」から「直せる」へ

Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。

※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。

セミナー画像

Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinのクラスドキュメントコメントの書き方ガイド|初心者でもわかるKDocの基本と書き方
New2
Go言語
Go言語の関数設計パターン集!可読性と再利用性を高めよう
New3
Go言語
Go言語のインターフェースと抽象化の考え方を初心者向けに解説
New4
Kotlin
Kotlinのsorted・sortedByでコレクションをソートする方法【初心者向け完全ガイド】
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.2
Java&Spring記事人気No2
Swift
Swift入門ガイド|基本構文と書き方をマスターしよう
No.3
Java&Spring記事人気No3
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.4
Java&Spring記事人気No4
Kotlin
Kotlinで画面遷移を実装しよう!初心者でもわかるIntentの使い方完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のマルチステージビルド完全解説!Dockerで軽量なコンテナを作る方法
No.6
Java&Spring記事人気No6
Kotlin
Kotlinの可視性修飾子を完全ガイド!public・private・internalの意味と使い分けを初心者向けに解説
No.7
Java&Spring記事人気No7
Go言語
Go言語の構造体を使った設計パターン集(DTO・VOなど)
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説