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

Kotlinのコレクションとは?リスト・セット・マップの基本を解説|初心者でもわかるデータのまとめ方

Kotlinのコレクションとは?リスト・セット・マップの基本を解説
Kotlinのコレクションとは?リスト・セット・マップの基本を解説

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

生徒

「Kotlinで、たくさんのデータをまとめて扱う方法ってありますか?」

先生

「はい、それにはコレクションと呼ばれる仕組みを使います。代表的なものにリスト、セット、マップがありますよ。」

生徒

「リストとかセットって、どう違うんですか? 難しそうです…」

先生

「大丈夫です。コレクションの基本を、ひとつずつ分かりやすく説明していきますね!」

1. コレクションとは?データを効率よく扱う「魔法の箱」

1. コレクションとは?データを効率よく扱う「魔法の箱」
1. コレクションとは?データを効率よく扱う「魔法の箱」

プログラミングをしていると、「クラス全員のテスト結果」や「スマートフォンの連絡先リスト」のように、関連性のあるたくさんのデータを扱いたい場面が必ず出てきます。

もしコレクションを使わずに10人分の名前を管理しようとすると、次のように1つずつ変数を作らなければなりません。


val name1 = "田中"
val name2 = "佐藤"
val name3 = "鈴木"
// ... 10人分書くのは大変!

これではコードが長くなり、後からデータを追加したり探したりするのも一苦労です。そこで登場するのがコレクションです。コレクションは、バラバラのデータを1つの「箱(入れ物)」にまとめて、一括で管理できる仕組みのことです。

Kotlinのコレクションには、用途に合わせて主に3つのタイプが用意されています。

  • List(リスト): 順番に並べて管理する(出席番号順の名簿など)
  • Set(セット): 重複を許さずに管理する(トランプのカードなど)
  • Map(マップ): 特定のキーワードと値をセットで管理する(辞書や電話帳など)

初心者の方は、まずは「複数のデータを1つの変数にまとめられる便利な箱なんだな」とイメージすることから始めましょう。それでは、それぞれの特徴を詳しく見ていきましょう。

2. List(リスト)とは?データを順番通りに並べて管理

2. List(リスト)とは?データを順番通りに並べて管理
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] というように指定します。この 01 という数字をインデックス(添字)と呼びます。

listOf() を使うと、中身を後から変更できない「読み取り専用」のリストが作れるため、誤ってデータを消してしまう心配がなく、安全にプログラムを書くことができます。

3. Set(セット)とは?重複を許さないデータの集まり

3. Set(セット)とは?重複を許さないデータの集まり
3. Set(セット)とは?重複を許さないデータの集まり

Set(セット)は、一言で言うと「重複を絶対に許さない」という強いルールを持ったデータの集まりです。 List(リスト)は入れた順番通りに並び、同じデータが何度出てきてもOKでしたが、Setは「同じものは1つだけ」という状態を自動でキープしてくれます。

例えるなら:「出席名簿」ではなく「パーティーの参加者リスト」です。同じ人が2回名前を書いても、参加人数としては1人とカウントしたい時に非常に便利です。

プログラミング未経験の方でも分かりやすい、具体的なKotlinのコードを見てみましょう。


fun main() {
    // "田中"を2回入れてセットを作ってみる
    val names = setOf("田中", "佐藤", "田中")
    
    // 中身を表示すると、重複した「田中」は自動的に消えている
    println(names) 
    
    // 要素の数を確認すると、3ではなく2になる
    println("参加人数は ${names.size} 人です")
}

[田中, 佐藤]
参加人数は 2 人です

このように、プログラム側で「これは既に登録されているかな?」とわざわざチェックしなくても、Setを使うだけで自動的にユニーク(唯一)なデータ群を作れるのが最大のメリットです。 「アンケートの回答者一覧」や「Webサイトの閲覧済みページURL」など、重複を避けたいシーンで欠かせない機能です。

4. Map(マップ)とは?「名前」と「データ」を紐付ける仕組み

4. Map(マップ)とは?「名前」と「データ」を紐付ける仕組み
4. Map(マップ)とは?「名前」と「データ」を紐付ける仕組み

プログラミングを学んでいると、「特定のデータに名前をつけて管理したい」という場面がよくあります。そんな時に役立つのがMap(マップ)です。Mapは、情報を探し出すための「キー(鍵)」と、その中身である「値(データ)」をペアにして保存するコレクションです。

例えば、電話帳をイメージしてみてください。「田中さん」という名前(キー)を調べれば、「090-xxxx...」という電話番号(値)がわかりますよね。このように「片方を知っていれば、もう片方をすぐに見つけられる」のがMapの最大の特徴です。


fun main() {
    // Mapを作成("名前" to 年齢)
    val userAges = mapOf("田中" to 20, "佐藤" to 30, "鈴木" to 25)

    // キーを使って値を取り出す
    val satoAge = userAges["佐藤"]

    println("佐藤さんの年齢は ${satoAge} 歳です") // 佐藤さんの年齢は 30 歳です
}

上記のコードでは、to というキーワードを使って、左側に「キー(検索の手がかり)」、右側に「値(実際のデータ)」を記述しています。値を取り出すときは、userAges["佐藤"] のように、ブラケット [] の中にキーを指定するだけです。

この仕組みを使えば、大量のデータの中から特定の情報を一瞬で見つけ出すことができるため、ユーザー情報や設定ファイルの管理など、実務のあらゆるシーンで活用されています。

5. リスト・セット・マップの違いを比較しよう

5. リスト・セット・マップの違いを比較しよう
5. リスト・セット・マップの違いを比較しよう
種類順番重複使い道
ListありOK順番が大切なとき(買い物リストなど)
SetなしNGユニークな値が必要なとき(IDなど)
Mapキー順キーはNG対応づけ(名前と年齢など)

6. Listの使い方いろいろ

6. Listの使い方いろいろ
6. Listの使い方いろいろ

リストは、繰り返し処理要素の追加にも使えます。以下はリストのループの例です。


val items = listOf("ペン", "ノート", "消しゴム")
for (item in items) {
    println(item)
}

ペン
ノート
消しゴム

for文を使って、すべての要素を1つずつ表示できます。

7. Mapの繰り返しも便利

7. Mapの繰り返しも便利
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. ミュータブルとイミュータブルの違い

8. ミュータブルとイミュータブルの違い
8. ミュータブルとイミュータブルの違い

Kotlinのコレクションには、変更できない(イミュータブル)ものと、変更できる(ミュータブル)ものがあります。

listOf()mapOf()はイミュータブルです。一度作ったあとに中身を変更できません。

変更したい場合はmutableListOf()mutableMapOf()を使いましょう。


val mutableNames = mutableListOf("田中", "佐藤")
mutableNames.add("鈴木")
println(mutableNames)

[田中, 佐藤, 鈴木]

アプリの設計に応じて、使い分けることが大切です。

関連セミナーのご案内

【未経験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別にステップ解説