Kotlinの可変セット(MutableSet)の作り方と使い方をやさしく解説!初心者でも安心の重複なしデータ管理
生徒
「Kotlinで、同じデータが入らないようにして、あとから追加したり削除したりしたいです!」
先生
「それなら『可変セット(MutableSet)』を使うといいですよ。データの重複を自動で防ぎながら、追加や削除もできます。」
生徒
「可変セットって、初心者でも使えますか?どうやって使うんですか?」
先生
「もちろんです。Kotlinの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を作る基本の書き方
Kotlinで中身を自由に書き換えられる箱(コレクション)を作りたいときは、mutableSetOfという魔法の言葉を使います。Set(セット)の最大の特徴は、「同じものを重複して持てない」という点です。例えば、買い物リストを作る際に同じものを二度書かないように自動で整理してくれるイメージです。
まずは、プログラミングが初めての方でも分かりやすい「好きな果物リスト」を例に、基本的な書き方を見てみましょう。
fun main() {
// 1. MutableSet(中身を変更できるセット)を作成する
val fruits = mutableSetOf("りんご", "バナナ", "みかん")
// 2. 同じ「りんご」をもう一度追加しようとしてみる
fruits.add("りんご")
// 3. 結果を表示する(重複した「りんご」は無視されます)
println(fruits)
}
[りんご, バナナ, みかん]
上記のコードでは、mutableSetOf()を使って「りんご・バナナ・みかん」が入った可変セットを作成しました。途中で「りんご」をもう一度追加する命令(add)を書いていますが、実行結果を見ると「りんご」は1つしか表示されません。これがSetの便利な仕組みです。
このように、「順番は気にしないけれど、中身の重複は絶対に避けたい」という場面で、このMutableSetは非常に強力な味方になってくれます。
3. データを追加してみよう
MutableSetにはadd()というメソッドを使ってデータを追加できます。ただし、すでにあるデータと同じものを入れようとしても、セットには入りません。
fun main() {
val colors = mutableSetOf("赤", "青")
colors.add("緑")
colors.add("赤") // 「赤」はすでにあるので追加されない
println(colors)
}
[赤, 青, 緑]
「赤」を2回追加しようとしていますが、セットは重複を許さないため、1回目だけが反映されます。
4. データを削除してみよう
不要になったデータは、remove()メソッドで削除できます。削除しても、残りのデータはそのままです。
fun main() {
val animals = mutableSetOf("いぬ", "ねこ", "うさぎ")
animals.remove("ねこ")
println(animals)
}
[いぬ, うさぎ]
remove()の中に消したいデータを書くだけで、かんたんに削除できます。
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. データの存在を確認する方法
contains()メソッドを使えば、あるデータがセットに含まれているかを確認できます。
fun main() {
val foods = mutableSetOf("ラーメン", "カレー", "うどん")
if (foods.contains("カレー")) {
println("カレーはリストにあります!")
} else {
println("カレーはリストにありません。")
}
}
カレーはリストにあります!
探したいデータが入っているかを調べられるのも、MutableSetの便利な使い方のひとつです。
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
7. MutableSetをクリアする(全削除)
セットの中身をすべて消したいときは、clear()メソッドを使います。
fun main() {
val items = mutableSetOf("A", "B", "C")
items.clear()
println(items)
}
[]
このように、中身を一気にリセットできるので、初期化したいときなどにも使えます。
【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分
「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。
本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。
具体的な体験内容と環境
【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。
【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。
この60分で得られる3つの体験
プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。
「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。
Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。
※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。
Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験