#kotlin
В Kotlin 1.9.0 из стадии Experimental в Stable перешла property entries(), которую можно вызывать для любых Enum и получить список всех элементов, которые в нём объявлены.
Зачем же нужна ещё одна функция, когда есть values()?
На самом деле, причин сразу несколько:
1️⃣ При каждом вызове функции создаётся новый Array: это одна из известных причин "скрытых" performance-багов.
2️⃣ При работе вызывается
Array<E>, который мутабелен, а также меньше подходит для работы с коллекциями, чем список. 3️⃣ Ну и ещё — сложнее писать extension-функции для
Array<E> вместо стандартных List<T>.Ну а в
entries() таких недостатков нет, а самое главное, что при вызове всегда используется один и тот же список и нет повторного создания.Чуть больше информации можно найти тут. Теперь вы знаете, что ответить на собеседовании, и почему стоит перейти на entries(). 🤓
