ursus
04/29/2019, 3:02 AMval foo1: String?
val foo2: String?
mapOf(
// if (foo1 != null) foo1 to 1 else ???
// if (foo2 != null) foo2 to 2 else ???
)
Dominaezzz
04/29/2019, 5:43 AMmapOf(foo1 to 1, foo2 to 2).filterKeys { it != null }.mapKeys { it!! }
could do.chalup
04/29/2019, 6:44 AMmutableMapOf().apply {
if (foo1 != null) put(foo1, 1)
// ...
}
wbertan
04/29/2019, 7:41 AM@Test
fun asas1() {
val foo1: String? = null
val foo2: String? = "foo2"
val foo3: String? = null
val foo4: String? = "foo4"
val result: Map<String, Int> =
setOf(foo1, foo2, foo3, foo4)
.filterNotNull()
.mapIndexed { index, value -> value to index }
.toMap()
println(result) //{foo2=0, foo4=1}
}
@Test
fun asas2() {
val foo1: String? = null
val foo2: String? = "foo2"
val foo3: String? = null
val foo4: String? = "foo4"
val result: Map<String, Int> =
setOf(foo1, foo2, foo3, foo4)
.mapIndexedNotNull { index, value -> value?.let { it to index } }
.toMap()
println(result) //{foo2=1, foo4=2}
}
Two behaviours depending of what index you want to keep