Avatar ·

Enumeraciones eficientes en Kotlin: ¿cómo hacer una búsqueda inversa por valor?

¡Hola a todos! He estado escribiendo en Kotlin recientemente y me encontré con esta tarea. Tengo una clase enum para los estados de pedido: ```kotlin enum class OrderStatus(val code: Int) { PENDING(1), PROCESSING(2), SHIPPED(3), DELIVERED(4), CANCELLED(5) } ``` Desde la base de datos obtengo un código numérico de estado (por ejemplo, 3), y necesito obtener el valor enum correspondiente — `OrderStatus.SHIPPED`. Sé que en Java a menudo se usa un `HashMap` estático para la búsqueda inversa. Pero en Kotlin esto parece engorroso. Intenté escribir una función de extensión: ```kotlin fun OrderStatus.Companion.fromCode(code: Int): OrderStatus? { return values().find { it.code == code } } ``` Pero esto funciona lentamente porque recorre todos los valores cada vez. Para 5 estados no es crítico, pero en el proyecto hay un enum con 30+ valores, y temo que con datos grandes esto se ralentice. Pregunta: ¿cómo implementar correctamente una búsqueda inversa (reverse lookup) eficiente en enums de Kotlin? Si