2017-08-30 12 views
1

私は2つの配列を持っています.1つは文字列をキーとして、もう1つは整数を値として持ちます。どのように地図に変換できますか?2つの配列をマップに変換する方法

val keys = arrayOf("butter", "milk", "apples") 
val values = arrayOf(5, 10, 42) 
val map: Map<String, Int> = ??? 

編集:私はおよそHow to convert List to Map in Kotlin?を知っているが、私は2つのリストを持っているので、それは、この問題を解決していません。

+0

の可能性のある重複(https://stackoverflow.com/questions/32935470/how-to-convert-list-to- [Kotlinのマップをリストに変換する方法は?]:このように

Makoto

答えて

5

配列をまとめてペア(List<Pair<String, Int>>)のリストを取得し、次にtoMapを使用してマップを取得できます。

val keys = arrayOf("butter", "milk", "apples") 
val values = arrayOf(5, 10, 42) 

val map: Map<String, Int> = 
      keys.zip(values) // Gives you [("butter", 5), ("milk", 10), ("apples", 42)] 
       .toMap()  // This is an extension function on Iterable<Pair<K, V>> 
+0

良い、私はちょうど最後の行の 'values.toList()'を変更する必要がありました。 – Pitel

+0

おそらくさらに良いでしょう: 'values.asIterable()' – Pitel

関連する問題