結論
zip
とtoMap
を使用することで簡単にできます。
val names = arrayOf("one", "two", "three") val nums = arrayOf(1, 2, 3) val nameAndNums = names.zip(nums).toMap() println(nameAndNums) // {one=1, two=2, three=3}
zip
は、List<Pair<T, R>
を返却するメソッドです。
toMap
は名前の通り、Map
を生成するためのメソッドです。
Iterable<Pair<K, T>>
の拡張関数として定義されています。
気になったこと
用意した配列のサイズが異なっていたらどうなるんだ?と思い、実行してみると、少ない方のサイズに合わせるように動くことがわかりました。
val names = arrayOf("one", "two", "three", "four") val nums = arrayOf(1, 2, 3, 4, 5) val nameAndNums = names.zip(nums) println(nameAndNums) // [(one, 1), (two, 2), (three, 3), (four, 4)] // 5はペアとして生成されない
結果としては直感的というか、まぁそうですよね、という感想ですね。