zipWithNextで隣り合う要素を手軽にペア処理

Kotlin
記事内に広告が含まれる場合があります

Kotlinのリストや文字列を扱う場面で、隣り合う要素を比較したい、まとめて処理したいというケースは少なくありません。そんな時に便利なのが、zipWithNextという関数です。これを使えば、わざわざループでインデックスを管理せずとも、隣接する要素をペアとして扱えます。


基本的な使い方

Kotlin
val numbers = listOf(10, 20, 15, 25)

val pairs = numbers.zipWithNext()

println(pairs)
// 出力: [(10, 20), (20, 15), (15, 25)]
  • zipWithNext() を呼び出すだけで、隣接する要素同士のペアを自動的に作ってくれます。
  • 戻り値は List<Pair<T, T>> です。

差分を取りたい時に便利

Kotlin
val numbers = listOf(100, 105, 110, 95)

val differences = numbers.zipWithNext { a, b -> b - a }

println(differences)
// 出力: [5, 5, -15]
  • zipWithNext にラムダを渡すと、ペアごとに処理して新しいリストを作れます。
  • グラフの変化量、数値の変動検出などに非常に便利。

文字列の連続ペア処理

Kotlin
val text = "Kotlin"

val charPairs = text.toList().zipWithNext()

println(charPairs)
// 出力: [(K, o), (o, t), (t, l), (l, i), (i, n)]
  • 文字列の隣接文字を調べるのにも応用可能。
  • パスワード強度判定など、パターン検出にも使える。

まとめ

zipWithNextは以下のような場面で活躍します:

  • 隣り合うデータの比較処理変化検出
  • 差分や傾向の分析
  • 文字列やコレクションのシーケンシャルなペア化

Kotlinでデータの並びや変化を見る処理を書くときは、zipWithNextを使うとコードがスッキリします。知っておいて損のない、実務でも役立つ関数です。

タイトルとURLをコピーしました