Kotlin collections were inspired by Scala and its mutable and immutable collection types. Kotlin defines its collection types in the kotlin.collections package, and there you'll see that it basically redefines types that already exist in Java. But all of them get compiled to the Java version of the same type. So you don't have to worry that there is an additional overhead when using them.
The Iterable interface is the basis for all collection types. It has only one method, iterator, which returns an object that can iterate over a collection:
public interface Iterable<out T> {
public operator fun iterator(): Iterator<T>
}
The Iterator object knows how to iterate over a collection. It has two methods: next which returns the next element, and hasNext which tells us if there any more elements in the collection:
public interface Iterator<...