therealbluepandabear
03/09/2021, 3:10 AMfun getValue(value: Value, param: MutableMap<Char, Int>): Pair<Char, Int> {
return when (value) {
Value.MIN -> Pair(param.keys.elementAt(param.values.indexOf(param.values.minOrNull() ?: 0)), param.values.minOrNull() ?: 0)
Value.MAX -> Pair(param.keys.elementAt(param.values.indexOf(param.values.maxOrNull() ?: 0)), param.values.maxOrNull() ?: 0)
}
}
Thanks, Tomaleksey.tomin
03/09/2021, 4:09 AMfun getValue1(value: Value, param: MutableMap<Char, Int>) =
when (value) {
Value.MIN -> param.values.minOrNull() ?: 0
Value.MAX -> param.values.maxOrNull() ?: 0
}
fun getValue2(value: int) = Pair(param.keys.elementAt(param.values.indexOf(value)), value)
fun getValue(value: Value, param: MutableMap<Char, Int>) = getValue2(getValue1(value, param))
ephemient
03/09/2021, 4:22 AMfun getEntry(value: Value, param: Map<Char, Int>): Pair<Char, Int>? {
val entry = when (value) {
Value.MIN -> param.entries.minByOrNull { it.value }
Value.MAX -> param.entries.maxByOrNull { it.value }
} ?: param.entries.find { it.value == 0 }
return entry?.toPair()
}
ephemient
03/09/2021, 4:24 AM?:
fallback is of dubious utility. the only case when there is no min/max value is when the map is empty, in which case you won't find a 0 value either.ephemient
03/09/2021, 4:27 AMtherealbluepandabear
03/09/2021, 4:27 AMephemient
03/09/2021, 4:28 AMtherealbluepandabear
03/09/2021, 4:28 AMephemient
03/09/2021, 4:30 AMephemient
03/09/2021, 4:30 AMtherealbluepandabear
03/09/2021, 4:30 AMephemient
03/09/2021, 4:30 AMtherealbluepandabear
03/09/2021, 4:31 AMelect
03/09/2021, 12:58 PMfun getValue(value: Value, param: MutableMap<Char, Int>): Pair<Char, Int> {
val value = when (value) {
Value.MIN -> param.values.minOrNull()
Value.MAX -> param.values.maxOrNull()
} ?: 0
return param.keys[param.values.indexOf(value)] to value
}
elect
03/09/2021, 1:00 PMoperator fun MutableMap<Char, Int>.get(value: Value): Pair<Char, Int> {
val value = when (value) {
Value.MIN -> values.minOrNull()
Value.MAX -> values.maxOrNull()
} ?: 0
return keys[values.indexOf(value)] to value
}
ephemient
03/09/2021, 5:00 PMentries.minByOrNull { it.value }
entries.maxByOrNull { it.value }
gives you both the key and value at onceephemient
03/09/2021, 5:00 PMtherealbluepandabear
03/10/2021, 12:59 AMephemient
03/10/2021, 2:46 AMMap<>
, it will accept MutableMap<>
as input