Mengaitkan Berdasarkan Kunci
Termasuk bagian Logika & Alur dalam perjalanan Kotlin di Coddy. Pelajaran 39 dari 63.
associateBy membuat map dari kunci hasil perhitungan ke elemen asli. Jika kunci berulang, elemen terakhir untuk kunci tersebut yang dipakai. Gunakan groupBy jika setiap elemen yang cocok harus tetap ada; gunakan associateBy jika yang diinginkan adalah satu elemen terbaru untuk setiap kunci.
Di dalam main:
val latest = listOf("a", "to", "b").associateBy { it.length }
println(latest[1])a dan b sama-sama memiliki kunci satu, jadi b menggantikan a untuk kunci tersebut.
associateBy mempertahankan elemen terakhir ketika kunci yang dihitung bertabrakan.
Tantangan
SedangLengkapi lastOfLength dengan parameter words: List<String>, length: Int. Gunakan associateBy dengan panjang kata sebagai kunci. Kembalikan kata terakhir dari input yang memiliki panjang yang diminta, atau missing jika tidak ada.
Kecuali batas yang lebih ketat dinyatakan di atas, koleksi berisi paling banyak 100 elemen pada setiap tingkat, dan argumen integer serta nilai integer dalam koleksi berada di antara -1000 dan 1000. Teks yang diberikan untuk diurai dapat mencakup representasi yang tidak valid atau di luar rentang, seperti yang dijelaskan.
Kembalikan nilai bertipe String. Pertahankan kode input/output yang diberikan. Kode tersebut membaca argumen skalar, satu per baris; sebuah list diawali dengan jumlah elemennya, lalu elemen-elemennya, dan sebuah map diawali dengan jumlah entrinya, lalu setiap kunci dan nilai. List bertingkat mengulangi format jumlah-elemen untuk setiap baris. main yang diberikan mencetak nilai yang dikembalikan, diikuti satu baris baru. List menggunakan format standar Kotlin dengan tanda kurung siku; jangan mencetak label tambahan.
Coba sendiri
fun lastOfLength(words: List<String>, length: Int): String {
// Tulis solusimu di sini.
return ""
}
fun main() {
val wordsCount = readln().toInt()
val words = mutableListOf<String>()
for (i0 in 0 until wordsCount) {
val wordsItem = readLine().orEmpty()
words.add(wordsItem)
}
val length = readln().toInt()
println(lastOfLength(words, length))
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika & Alur
4Koleksi Bersarang
List Berisi ListMenelusuri BarisRingkasan BarisMeratakan List BertingkatRangkuman, Baris Tempat Duduk7Alur Pemrosesan Koleksi
Transformasi dengan MapMemfilter NilaiMenguji Aturan KoleksiMengakumulasi dengan FoldRangkuman: Total yang Disetujui2Map Bagian 2
Menelusuri Entri MapKunci dan NilaiMap FrekuensiMap BersarangRingkasan: Laporan Frekuensi5Proyek: Buku Kontak
Menyimpan KontakMencari Kontak8Mengurutkan dan Mengelompokkan
Mengurutkan Berdasarkan KunciMenggabungkan PerbandinganMengelompokkan NilaiMengaitkan Berdasarkan KunciRangkuman: Papan Peringkat Berdasarkan PanjangLatihan sendiri: Playground Kotlin