Data operations in a collection
Kotlin provides out-of-the-box support for its collection framework. As a result, the collections framework in Kotlin is full of interesting features that make it stand apart from the collections framework in other languages, such as Java. You already got introduced with some of those features, such as separate interfaces for read-only and mutable collections, square box operator-like arrays, and so on. What I'm going to introduce now is probably the most interesting feature of Kotlin's collections framework, but goes mostly unnoticed—data operation functions.
Kotlin supports data operation functions for all of its collections framework interfaces, objects, and classes. By data operation functions, I mean the operators and functions by which we can access, process or operate on data from a collection; if you are familiar with ReactiveX framework/RxJava/RxKotlin, you'll find it similar as Kotlin picked them mostly from there.
The following is a list of a few...