У меня есть массив с несколькими объектами с одним и тем же ключом, другие объекты имеют пустые значения, и я надеялся использовать DifferentBy для удаления дубликатов и получения объектов, значения которых имеют самую длинную строку.
data class ObjA(val key: String, val value: String)
fun test() {
val listOfA = mutableListOf(
ObjA("one", ""), //This will be taken in distinctBy.
ObjA("one", "o"),
ObjA("one", "on"),
ObjA("one", "one"), //This will be ignored in distinctBy. I WANT THIS ONE.
ObjA("two", ""), //This will be returned in distinctBy
ObjA("two", "2"),
ObjA("two", "two"), //But I want this.
ObjA("three", "3"),
ObjA("four", "4"),
ObjA("five", "five")
)
val listOfAWithNoDuplicates = listOfA.distinctBy { it.key }
for (o in listOfAWithNoDuplicates) {
println("key: ${o.key}, value: ${o.value}")
}
}
выход
key: one, value:
key: two, value:
key: three, value: 3
key: four, value: 4
key: five, value: five
Как заставить это работать. Любая помощь будет оценена.