カテゴリ: Kotlin 更新日: 2025/08/30

Kotlinのzipで2つのコレクションを結合する方法【初心者向け完全解説】

Kotlinのzipで2つのコレクションを結合する方法
Kotlinのzipで2つのコレクションを結合する方法

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

生徒

「Kotlinで2つのリストを1つにまとめたいんですが、どうすればいいですか?」

先生

「そんなときはzipという関数を使うと便利です。2つのコレクションを順番にペアとして結合できますよ。」

生徒

「ペアとして結合ってどういうことですか?」

先生

「例えば、商品名のリストと価格のリストを、1つのリストにまとめて管理することができます。実際の例で説明しますね。」

1. zipとは?

1. zipとは?
1. zipとは?

zipは、2つのコレクション(リストなど)を同じ順番で1対1のペア(Pair)として結合する関数です。

例えば、名前と年齢のリストをまとめたいときに使えます。


fun main() {
    val names = listOf("Alice", "Bob", "Charlie")
    val ages = listOf(25, 30, 28)
    val paired = names.zip(ages)
    println(paired)
}

[(Alice, 25), (Bob, 30), (Charlie, 28)]

このように、同じインデックスの要素同士がペアになったリストが作られます。

2. 長さが違う場合

2. 長さが違う場合
2. 長さが違う場合

2つのリストの長さが違う場合、短い方の長さに合わせて結合されます。


fun main() {
    val fruits = listOf("Apple", "Banana", "Cherry")
    val prices = listOf(100, 200)
    val paired = fruits.zip(prices)
    println(paired)
}

[(Apple, 100), (Banana, 200)]

この例では、3つ目の"Cherry"は価格がないため無視されます。

3. zipとラムダ式で加工

3. zipとラムダ式で加工
3. zipとラムダ式で加工

zipは、単にペアを作るだけでなく、ラムダ式を使って結合結果を加工することもできます。


fun main() {
    val products = listOf("Laptop", "Mouse", "Keyboard")
    val prices = listOf(120000, 2000, 5000)
    val productInfo = products.zip(prices) { product, price ->
        "$product の価格は ${price}円"
    }
    println(productInfo)
}

[Laptop の価格は 120000円, Mouse の価格は 2000円, Keyboard の価格は 5000円]

このようにして、すぐに使える文章リストを作ることも可能です。

4. zipの実用例:学生の名前と点数を結合

4. zipの実用例:学生の名前と点数を結合
4. zipの実用例:学生の名前と点数を結合

テストの結果を管理する場合、名前のリストと点数のリストを結合して使いやすくできます。


fun main() {
    val students = listOf("山田", "佐藤", "鈴木")
    val scores = listOf(85, 92, 78)
    val results = students.zip(scores) { name, score ->
        "$name さんの点数は $score 点です"
    }
    println(results)
}

[山田 さんの点数は 85 点です, 佐藤 さんの点数は 92 点です, 鈴木 さんの点数は 78 点です]

このように、ペアをわかりやすい文章に変換することができます。

5. zipを使うときの注意点

5. zipを使うときの注意点
5. zipを使うときの注意点
  • 2つのコレクションの長さが異なる場合、短い方に合わせられる
  • 結果はList<Pair<T, R>>になる
  • ラムダ式を使えばカスタム形式で結合できる

このルールを理解しておけば、zipはデータのペアリングに非常に役立ちます。

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinの構文ルールまとめ!インデント・セミコロンなど初心者が最初に覚えるべきポイント
New2
Kotlin
Kotlinの関数ドキュメンテーションコメント(KDoc)の書き方を徹底解説!初心者でもわかる丁寧なガイド
New3
Kotlin
KotlinでHello Worldを表示するには?最初の1行を実行してみよう
New4
Go言語
Go言語の依存関係管理を始めよう!go modの基本設定と導入手順
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.2
Java&Spring記事人気No2
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.3
Java&Spring記事人気No3
Kotlin
KotlinのAPI通信でGETリクエストを送る方法!初心者向け徹底ガイド
No.4
Java&Spring記事人気No4
Swift
SwiftのURLSessionでのネットワークエラー対策!再試行とタイムアウトを初心者向けに解説
No.5
Java&Spring記事人気No5
Go言語
Go言語のテストでタイムアウト・並行処理を扱うポイント
No.6
Java&Spring記事人気No6
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.7
Java&Spring記事人気No7
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.8
Java&Spring記事人気No8
Swift
Swift JSONデコード失敗の原因と対処|DecodingError徹底解説