Misalnya saya punya daftar string seperti:
val list = listOf("a", "b", "c", "d")
dan saya ingin mengubahnya menjadi peta, di mana string adalah kuncinya.
Saya tahu saya harus menggunakan .toMap()
fungsi ini, tetapi saya tidak tahu caranya, dan saya belum melihat contohnya.
dictionary
kotlin
LordScone
sumber
sumber
Pair
instance mungkin sangat mahal untuk koleksi besarDari
List
keMap
denganassociate
fungsiDengan Kotlin 1.3,
List
memiliki fungsi yang disebutassociate
.associate
memiliki deklarasi berikut:Pemakaian:
Dari
List
keMap
denganassociateBy
fungsiDengan Kotlin,
List
memiliki fungsi yang disebutassociateBy
.associateBy
memiliki deklarasi berikut:Pemakaian:
sumber
*Referensi: Dokumentasi Kotlin
1- associate (untuk mengatur Kunci & Nilai): Buat peta yang dapat mengatur elemen kunci & nilai:
2- associateBy (cukup atur Tombol dengan perhitungan): Buat peta yang bisa kita atur Tombol baru, elemen analog akan ditetapkan untuk nilai
3- associateWith (cukup tetapkan Nilai dengan perhitungan): Buat peta yang bisa kita atur Nilai baru, elemen analog akan ditetapkan untuk Kunci
Contoh dari tips Kotlin:
sumber
Anda dapat menggunakan
associate
untuk tugas ini:Dalam contoh ini, string dari
list
menjadi kunci dan panjangnya yang sesuai (sebagai contoh) menjadi nilai di dalam peta.sumber
Jika Anda memiliki duplikat dalam daftar yang tidak ingin hilang, Anda dapat melakukannya menggunakan ini
groupBy
.Kalau tidak, seperti kata orang lain, gunakan
associate/By/With
(yang dalam kasus duplikat, saya percaya, hanya akan mengembalikan nilai terakhir dengan kunci itu).Contoh pengelompokan daftar orang berdasarkan usia:
Hasil:
sumber
Itu telah berubah pada versi RC.
saya menggunakan
val map = list.groupByTo(destinationMap, {it.facebookId}, { it -> it.point })
sumber