Menu
Coddy logo textTech

Take Drop ile Liste Dilimleme

Coddy'nin Kotlin Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 80 / 93.

Kotlin, yalnızca listenin başından veya sonundan öğelere ihtiyaç duyduğunuzda listenin bölümlerini ayıklamak için iki daha basit yöntem sunar: take() ve drop().

take() yöntemi, ilk n öğeyi içeren yeni bir liste döndürür:

val numbers = listOf(10, 20, 30, 40, 50)
val firstThree = numbers.take(3)
println(firstThree)  // [10, 20, 30]

drop() yöntemi bunun tersini yapar. İlk n öğeyi atlar ve geri kalanları döndürür:

val numbers = listOf(10, 20, 30, 40, 50)
val afterTwo = numbers.drop(2)
println(afterTwo)  // [30, 40, 50]

subList() yöntemlerinin aksine, bu yöntemler görünümler yerine bağımsız kopyalar döndürür. Ayrıca yalnızca "ilk birkaç" öğeyi veya "ilk birkaç" öğe dışındaki her şeyi istediğinizde daha okunabilirdir.

Orta bölümü çıkarmak için her iki yöntemi birleştirebilirsin:

val letters = listOf("A", "B", "C", "D", "E")
val middle = letters.drop(1).take(3)
println(middle)  // [B, C, D]

Mevcut olandan daha fazla öğe isterseniz, bu yöntemler hata oluşturmak yerine yalnızca mevcut olanları döndürür:

val short = listOf(1, 2)
println(short.take(10))  // [1, 2]
println(short.drop(10))  // []
challenge icon

Görev

Orta

Bir tam sayı listesi ve iki sayı alacaksınız: baştan kaç öğenin çıkarılacağı ve çıkarma işleminden sonra kaç öğenin alınacağı.

Listenin ortasındaki bir bölümü çıkarmak için drop() ve take() işlevlerini birlikte kullanın, ardından çıkarılan öğeleri yazdırın.

Girdi biçimi:

  • İlk satır: öğe sayısını belirten bir n tam sayısı
  • Sonraki n satır: listeye eklenecek tam sayılar
  • Sonraki satır: baştan çıkarılacak öğe sayısı
  • Son satır: çıkarma işleminden sonra alınacak öğe sayısı

Çıktı biçimi:

Ortaya çıkan listeyi Kotlin'in varsayılan liste biçiminde yazdırın.

Örnek:

Liste [10, 20, 30, 40, 50, 60], drop değeri 2 ve take değeri 3 ise çıktı şu şekilde olmalıdır:

[30, 40, 50]

Kendin dene

fun main() {
    // Eleman sayısını oku
    val n = readLine()!!.toInt()
    
    // Liste elemanlarını oku
    val list = mutableListOf<Int>()
    for (i in 1..n) {
        list.add(readLine()!!.toInt())
    }
    
    // drop ve take değerlerini oku
    val dropCount = readLine()!!.toInt()
    val takeCount = readLine()!!.toInt()
    
    // TODO: Kodunuzu aşağıya yazın
    // Orta bölümü çıkarmak için drop() ve take() kullanın
    
    
    // Sonucu yazdır
    println(result)
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Kotlin playground