É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