Avatar ·

Effiziente Enums in Kotlin: Wie mache ich eine Rückwärtssuche nach Wert?

Hallo zusammen! Ich schreibe seit kurzem in Kotlin und bin auf folgendes Problem gestoßen. \n\nIch habe eine enum-Klasse für Bestellstatus:\n\n```kotlin\nenum class OrderStatus(val code: Int) {\n PENDING(1),\n PROCESSING(2),\n SHIPPED(3),\n DELIVERED(4),\n CANCELLED(5)\n}\n```\n\nAus der Datenbank erhalte ich einen numerischen Statuscode (z.B. 3) und muss den entsprechenden enum-Wert — `OrderStatus.SHIPPED` — erhalten. \n\nIch weiß, dass in Java oft ein statischer `HashMap` für die Rückwärtssuche verwendet wird. Aber in Kotlin wirkt das umständlich. Ich habe versucht, eine extension function zu schreiben:\n\n```kotlin\nfun OrderStatus.Companion.fromCode(code: Int): OrderStatus? {\n return values().find { it.code == code }\n}\n```\n\nAber das ist langsam, weil es jedes Mal alle Werte durchläuft. Für 5 Status ist das nicht kritisch, aber im Projekt gibt es ein enum mit 30+ Werten, und ich befürchte, dass es bei großen Datenmengen bremsen wird.\n\nFrage: Wie implementiere ich eine effiziente Rückwärtssuche (reverse lookup) in Kotlin enums? Es