У меня есть класс enum, который будет содержать различные состояния приложения.
enum class State {
STATE_1, STATE_2, STATE_4, READY, UNKNOWN
}
У меня будет список, содержащий эти состояния в некотором случайном порядке. Я хочу написать алгоритм, который будет возвращать определенное состояние, если другие состояния не доступны. Например:
val list = listOf(READY, STATE_2, STATE_1)
возврат STATE_2
val list = listOf(READY, STATE_1)
возврат STATE_1
val list = listOf(STATE_2, STATE_1)
возврат STATE_2
val list = listOf(UNKNOWN, STATE_2)
return STATE_2
Я ищу что-то, что поможет мне сделать вложенные find
над коллекцией в kotlin.
Это то, чего я достиг до сих пор:
private fun filter(states: List<State>): State {
val currentStates = states.filter {
it != State.UNKNOWN || it != State.READY
}
currentStates.find { it == State.STATE_4 }?.let {
return it
} ?: currentStates.find { it == State.STATE_2 }?.let {
return it
} ?: currentStates.find { it == State.STATE_1 }?.let {
return it
}
}