Kotlinのコレクションとは?リスト・セット・マップの基本を解説|初心者でもわかるデータのまとめ方
生徒
「Kotlinで、たくさんのデータをまとめて扱う方法ってありますか?」
先生
「はい、それにはコレクションと呼ばれる仕組みを使います。代表的なものにリスト、セット、マップがありますよ。」
生徒
「リストとかセットって、どう違うんですか? 難しそうです…」
先生
「大丈夫です。コレクションの基本を、ひとつずつ分かりやすく説明していきますね!」
1. コレクションとは?データを効率よく扱う「魔法の箱」
プログラミングをしていると、「クラス全員のテスト結果」や「スマートフォンの連絡先リスト」のように、関連性のあるたくさんのデータを扱いたい場面が必ず出てきます。
もしコレクションを使わずに10人分の名前を管理しようとすると、次のように1つずつ変数を作らなければなりません。
val name1 = "田中"
val name2 = "佐藤"
val name3 = "鈴木"
// ... 10人分書くのは大変!
これではコードが長くなり、後からデータを追加したり探したりするのも一苦労です。そこで登場するのがコレクションです。コレクションは、バラバラのデータを1つの「箱(入れ物)」にまとめて、一括で管理できる仕組みのことです。
Kotlinのコレクションには、用途に合わせて主に3つのタイプが用意されています。
- List(リスト): 順番に並べて管理する(出席番号順の名簿など)
- Set(セット): 重複を許さずに管理する(トランプのカードなど)
- Map(マップ): 特定のキーワードと値をセットで管理する(辞書や電話帳など)
初心者の方は、まずは「複数のデータを1つの変数にまとめられる便利な箱なんだな」とイメージすることから始めましょう。それでは、それぞれの特徴を詳しく見ていきましょう。
2. List(リスト)とは?データを順番通りに並べて管理
プログラミングをしていると、「複数のデータをまとめて扱いたい」場面がよくあります。そんな時に便利なのがList(リスト)です。
リストは、複数の値を「順番通りに一列に並べて」管理するための箱のようなものです。たとえば、出席番号順の生徒名簿や、追加した順番が大切な「買い物メモ」などをイメージすると分かりやすいでしょう。
- データに「1番目、2番目…」という順番がある
- 同じ値(例:バナナが2つなど)が含まれていてもOK
- 「インデックス」という番号を使って、中身を取り出す
fun main() {
// 3つのフルーツが入ったリストを作成します
val fruits = listOf("りんご", "バナナ", "みかん")
// リストの中身を順番(インデックス)を指定して表示します
println(fruits[0]) // 1番目の「りんご」が表示される
println(fruits[1]) // 2番目の「バナナ」が表示される
}
Kotlinのリストで最も大切なルールは、「数え方は0から始まる」という点です。1番目のデータは [0]、2番目は [1] というように指定します。この 0 や 1 という数字をインデックス(添字)と呼びます。
listOf() を使うと、中身を後から変更できない「読み取り専用」のリストが作れるため、誤ってデータを消してしまう心配がなく、安全にプログラムを書くことができます。
3. Set(セット)とは?重複なしの集まり
セットは重複を許さないデータの集まりです。同じ値を何度も入れても1つにまとめられます。たとえば、参加者の名前など「同じ人は1回だけカウント」したいときに使います。
val names = setOf("田中", "佐藤", "田中")
println(names) // 田中と佐藤だけ表示
[田中, 佐藤]
このように、自動的に重複を除いてくれるのがセットの特徴です。
4. Map(マップ)とは?キーと値のペア
マップは「名前(キー)」と「値」のペアを管理するコレクションです。たとえば、「Aさんの年齢は20歳、Bさんは30歳」など、対応関係を表すのに便利です。
val ages = mapOf("田中" to 20, "佐藤" to 30)
println(ages["佐藤"]) // 30
toという記法で「キー → 値」の関係を作れます。ages["佐藤"]のようにして、値を取り出せます。
5. リスト・セット・マップの違いを比較しよう
| 種類 | 順番 | 重複 | 使い道 |
|---|---|---|---|
| List | あり | OK | 順番が大切なとき(買い物リストなど) |
| Set | なし | NG | ユニークな値が必要なとき(IDなど) |
| Map | キー順 | キーはNG | 対応づけ(名前と年齢など) |
6. Listの使い方いろいろ
リストは、繰り返し処理や要素の追加にも使えます。以下はリストのループの例です。
val items = listOf("ペン", "ノート", "消しゴム")
for (item in items) {
println(item)
}
ペン
ノート
消しゴム
for文を使って、すべての要素を1つずつ表示できます。
7. Mapの繰り返しも便利
マップも繰り返し処理に対応しています。キーと値をペアで取り出すことができます。
val scores = mapOf("英語" to 80, "数学" to 90)
for ((subject, score) in scores) {
println("$subject の点数は $score 点です")
}
英語 の点数は 80 点です
数学 の点数は 90 点です
キーと値を同時に使いたいときには、とても便利な書き方です。
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
8. ミュータブルとイミュータブルの違い
Kotlinのコレクションには、変更できない(イミュータブル)ものと、変更できる(ミュータブル)ものがあります。
listOf()やmapOf()はイミュータブルです。一度作ったあとに中身を変更できません。
変更したい場合はmutableListOf()やmutableMapOf()を使いましょう。
val mutableNames = mutableListOf("田中", "佐藤")
mutableNames.add("鈴木")
println(mutableNames)
[田中, 佐藤, 鈴木]
アプリの設計に応じて、使い分けることが大切です。
【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分
「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。
本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。
具体的な体験内容と環境
【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。
【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。
この60分で得られる3つの体験
プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。
「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。
Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。
※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。
Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験