Avatar ·

Énumérations efficaces en Kotlin : comment effectuer une recherche inverse par valeur ?

Bonjour à tous ! J'écris en Kotlin depuis peu et j'ai rencontré un problème. J'ai une classe enum pour les statuts de commande : ```kotlin enum class OrderStatus(val code: Int) { PENDING(1), PROCESSING(2), SHIPPED(3), DELIVERED(4), CANCELLED(5) } ``` Depuis la base de données, je reçois un code numérique de statut (par exemple, 3), et j'ai besoin d'obtenir la valeur enum correspondante — `OrderStatus.SHIPPED`. Je sais qu'en Java, on crée souvent un `HashMap` statique pour la recherche inverse. Mais en Kotlin, cela semble lourd. J'ai essayé d'écrire une fonction d'extension : ```kotlin fun OrderStatus.Companion.fromCode(code: Int): OrderStatus? { return values().find { it.code == code } } ``` Mais cela fonctionne lentement, car cela parcourt toutes les valeurs à chaque fois. Pour 5 statuts, ce n'est pas critique, mais dans le projet, il y a un enum avec 30+ valeurs, et je crains que sur de grandes données cela ne ralentisse. Question : comment implémenter correctement une recherche inverse (reverse lookup) efficace dans les enums Kotlin ? Si