Mengelompokkan Nilai
Termasuk bagian Logika & Alur dalam perjalanan Kotlin di Coddy. Pelajaran 38 dari 63.
groupBy mengembalikan map yang kuncinya dihasilkan oleh lambda dan nilainya berupa list elemen yang cocok. Setiap grup mempertahankan urutan asli anggotanya. Mengakses grup yang tidak ada akan memberikan null, sama seperti pencarian lain pada map.
Di dalam main:
val groups = listOf("a", "to", "b").groupBy { it.length }
println(groups[1])Grup dengan panjang satu berisi a dan b dalam urutan aslinya.
groupBy menyimpan setiap elemen yang cocok dalam sebuah list untuk kunci hasil perhitungannya.
Tantangan
SedangLengkapi wordsOfLength dengan parameter words: List<String>, length: Int. Kelompokkan kata berdasarkan panjangnya, lalu kembalikan kelompok yang diminta dalam urutan aslinya. Kembalikan list kosong jika kelompok tersebut tidak ada.
Kecuali jika batas yang lebih ketat dinyatakan di atas, koleksi berisi paling banyak 100 elemen di setiap tingkat, dan argumen bilangan bulat serta nilai bilangan bulat 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 List<String>. Pertahankan kode input/output yang disediakan. Kode tersebut membaca argumen skalar satu per baris; list dimulai dengan jumlah elemennya, lalu diikuti elemen-elemennya, dan map dimulai dengan jumlah entrinya, lalu diikuti setiap kunci dan nilai. List bersarang mengulangi format jumlah-elemen untuk setiap baris. main yang disediakan mencetak nilai yang dikembalikan, lalu satu karakter baris baru. List menggunakan format standar Kotlin dengan tanda kurung siku. Jangan cetak label tambahan.
Coba sendiri
fun wordsOfLength(words: List<String>, length: Int): List<String> {
// Tulis solusimu di sini.
return emptyList()
}
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(wordsOfLength(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