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...