(T) -> Boolean): T? {
for (element in this) if (predicate(element)) return element
return null
}
а не так:
public inline fun <T> Iterable<T>.firstOrNull(predicate: (T) -> Boolean): T? {
for (id in indices) if (predicate(this[id])) return this[id]
return null
}
Помню как то проверялна ведроиде и заметил что если не индексировать то память жрет нормально так.
в 1 варианте итерация по объектам идет во 2 по индексам (Int)
потому что это extension над коллекцией, а среди них есть LinkedList
Обсуждают сегодня