Drop family

OK, this is cool if you have to iterate over all elements in your collection anyway. But with the for loops in Java, you could do something like this:

// Skips first two elements
for (int i = 2; i < list.size(); i++) {
// Do something here
}

How are you going to achieve that with your funky functions, huh?

Well, for that there's drop():

val numbers = (1..5).toList()
println(numbers.drop(2)) // [3, 4, 5]

Do note that this doesn't modify the original collection in any way:

println(numbers) // [1, 2, 3, 4, 5]

If you would like to stop your loop earlier, there's dropLast() for that:

println(numbers.dropLast(2)) // [1, 2, 3]

Another interesting function is dropWhile(), in which it receives a predicate instead of a number. It skips until the predicate returns true for the first time:

val readings = listOf(-7, -2, -1, -1, 0, 1, 3, 4)

println(readings.dropWhile {
it <= 0
}) // [1, 3, 4]

And there's the accompanying dropLastWhile().

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
52.15.55.18