カテゴリ: Kotlin 更新日: 2026/03/07

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

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

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

生徒

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

先生

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

生徒

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

先生

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

1. zipとは?その基本と仕組みをわかりやすく解説

1. zipとは?その基本と仕組みをわかりやすく解説
1. zipとは?その基本と仕組みをわかりやすく解説

zip(ジップ)は、2つの独立したリストを「ファスナーを閉めるように」ガッチャンコと1つにまとめる便利な関数です。プログラミングでは、関連する2つのデータをセットで扱いたい場面がよくあります。

例えば、「生徒の名前リスト」「その年齢のリスト」が別々にある場合、これらを1人ずつのペア(Pair)として結合し、管理しやすくするのがzipの役割です。

まずは、最もシンプルな「名前」と「年齢」を組み合わせるコードを見てみましょう。初心者の方でも、どのような結果になるかイメージしやすいはずです。


fun main() {
    // 1つ目のリスト(名前)
    val names = listOf("Alice", "Bob", "Charlie")
    
    // 2つ目のリスト(年齢)
    val ages = listOf(25, 30, 28)
    
    // zipを使って2つのリストをペアにする
    val paired = names.zip(ages)
    
    // 結果を表示
    println(paired)
}

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

実行結果を見ると、(名前, 年齢)という形式のデータが3つ並んだ新しいリストが作られているのがわかります。このように、同じ位置(インデックス)にある要素同士を自動的に見つけ出してペアにしてくれるのが、zipの最大の特徴です。自分で1つずつ組み合わせる手間が省けるため、コードが非常にスッキリします。

2. リストの長さが違う場合の挙動(zip関数の注意点)

2. リストの長さが違う場合の挙動(zip関数の注意点)
2. リストの長さが違う場合の挙動(zip関数の注意点)

「2つのリストを結合したいけれど、中身の数がバラバラだったらどうなるの?」と不安に思うかもしれません。Kotlinのzip関数は、そんな時でもエラーを出さずに「短い方のリスト」に合わせて自動的に調整してくれます。

例えば、商品リストが3つあるのに、価格リストが2つしかない場合を考えてみましょう。この場合、ペアが作れない余ったデータは切り捨てられる仕組みになっています。


fun main() {
    // 3つのフルーツがあるリスト
    val fruits = listOf("Apple", "Banana", "Cherry")
    // 価格は2つしかないリスト
    val prices = listOf(100, 200)

    // zipで結合すると、数の少ない「価格」に合わせてペアが作られる
    val paired = fruits.zip(prices)

    println(paired)
}

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

実行結果を見るとわかる通り、3つ目の「Cherry」は対応する価格データが存在しないため、結合結果には含まれません。

このように、zip関数は「必ずペアが成立するものだけを残す」という性質を持っています。プログラミング未経験の方でも、この「短い方に合わせる」というルールさえ覚えておけば、データの個数が一致しないことによる予期せぬエラー(クラッシュ)を防ぐことができるので安心です。

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 点です]

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

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

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

※ Amazon広告リンク

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

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

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

関連セミナーのご案内

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

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

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

具体的な体験内容と環境

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

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

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

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

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

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

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

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

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

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

セミナー画像

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

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinのラムダ式(無名関数)の基本と書き方を初心者向けに解説
New2
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New3
Swift
Swiftのswitch文の使い方|初心者でもわかるパターンマッチング徹底解説
New4
Kotlin
Kotlinの認証と認可を完全解説!初心者でもわかる安全なログイン管理とセキュリティ対策
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.6
Java&Spring記事人気No6
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.7
Java&Spring記事人気No7
Kotlin
Kotlinの文字列の部分取得!substring・take・dropの基本
No.8
Java&Spring記事人気No8
Go言語
Go言語でミドルウェアを作成する方法と活用例!初心者でもわかるWebアプリ開発