Mengiris list dengan Take Drop
Termasuk bagian Dasar-Dasar dalam perjalanan Kotlin di Coddy. Pelajaran 80 dari 93.
Kotlin menyediakan dua method yang lebih sederhana untuk mengambil sebagian elemen dari list saat kamu hanya memerlukan elemen dari awal atau akhir: take() dan drop().
method take() mengembalikan list baru yang berisi n elemen pertama:
val numbers = listOf(10, 20, 30, 40, 50)
val firstThree = numbers.take(3)
println(firstThree) // [10, 20, 30]method drop() melakukan hal sebaliknya. method ini melewati n elemen pertama dan mengembalikan sisanya:
val numbers = listOf(10, 20, 30, 40, 50)
val afterTwo = numbers.drop(2)
println(afterTwo) // [30, 40, 50]Tidak seperti subList(), method ini mengembalikan salinan independen, bukan tampilan. Method ini juga lebih mudah dibaca saat kamu hanya ingin mengambil "beberapa elemen pertama" atau "semua elemen kecuali beberapa elemen pertama".
Kamu bisa menggabungkan kedua method untuk mengambil bagian tengah:
val letters = listOf("A", "B", "C", "D", "E")
val middle = letters.drop(1).take(3)
println(middle) // [B, C, D]Jika kamu meminta lebih banyak elemen daripada yang tersedia, method ini hanya mengembalikan elemen yang tersedia tanpa menimbulkan error:
val short = listOf(1, 2)
println(short.take(10)) // [1, 2]
println(short.drop(10)) // []Tantangan
SedangKamu akan menerima list bilangan bulat dan dua angka: berapa banyak elemen yang harus dihapus dari awal dan berapa banyak elemen yang harus diambil setelah penghapusan.
Gunakan drop() dan take() bersama-sama untuk mengambil bagian tengah dari list, lalu cetak elemen yang diambil.
Format input:
- Baris pertama: bilangan bulat
nyang menunjukkan jumlah elemen nbaris berikutnya: bilangan bulat untuk ditambahkan ke list- Baris berikutnya: jumlah elemen yang harus dihapus dari awal
- Baris terakhir: jumlah elemen yang harus diambil setelah penghapusan
Format output:
Cetak list hasilnya dalam format list default Kotlin.
Contoh:
Jika list-nya adalah [10, 20, 30, 40, 50, 60], jumlah yang dihapus adalah 2, dan jumlah yang diambil adalah 3, output-nya adalah:
[30, 40, 50]Coba sendiri
fun main() {
// Baca jumlah elemen
val n = readLine()!!.toInt()
// Baca elemen list
val list = mutableListOf<Int>()
for (i in 1..n) {
list.add(readLine()!!.toInt())
}
// Baca nilai drop dan take
val dropCount = readLine()!!.toInt()
val takeCount = readLine()!!.toInt()
// TODO: Tulis kodemu di bawah ini
// Gunakan drop() dan take() untuk mengambil bagian tengah
// Cetak hasilnya
println(result)
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 1
Operator AritmetikaOperator ModuloPenugasan GabunganOperator PerbandinganRingkasan: Matematika Sederhana7Dasar input dan output
Fungsi PrintlnTemplate stringInput ReadLineKonversi Tipe DataRingkasan: Tahun hingga PensiunRingkasan: Benar atau Salah10Fungsi
Deklarasikan FungsiParameter dan ArgumenNilai KembalianArgumen BernamaNilai DefaultFungsi Ekspresi TunggalUlasan: Fungsi SigmaUlasan: Fungsi Validasi5Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Operator Logika Bagian 3Ternary dengan Ekspresi ifRangkuman: Logika Sederhana8Kalkulator Pembagi Tagihan
Pesan Selamat DatangMenerima Input11FizzBuzz dengan Sentuhan Unik
Gambaran Umum GameFungsi FizzBuzz14list Tingkat Lanjut
Mengiris list dengan SubListMengiris list dengan Take DropOperator UrutanMethod containsRingkasan, Cari Halaman3Kemungkinan Null
Apa Itu Keamanan NullTipe yang Dapat Bernilai NullOperator Pemanggilan AmanOperator ElvisDasar Tantangan FungsiPenegasan Bukan NullRangkuman: Akses Aman6Pengambilan Keputusan
Pernyataan IfIf - ElseIf sebagai EkspresiEkspresi WhenWhen dengan RentangUlasan - Kalkulator Sederhana9Perulangan
For loopWhile loopDo-while loopBreakContinueRentang dalam loopLoop BersarangRingkasan: FaktorialRingkasan: Input DinamisLatihan sendiri: Playground Kotlin