Kotlin - Идиоматический способ удаления повторяющихся строк из массива?

Как удалить дубликаты из Array<String?> в kotlin?

Ответы

Ответ 1

Используйте distinct функцию расширения:

val a = arrayOf("a", "a", "b", "c", "c")
val b = a.distinct() // ["a", "b", "c"]

Здесь также distinctBy функция, которая позволяет указать, как различать элементы:

val a = listOf("a", "b", "ab", "ba", "abc")
val b = a.distinctBy { it.length } // ["a", "ab", "abc"]

Как @mfulton26, вы также можете использовать toSet, toMutableSet и, если вам не нужно сохранить первоначальный заказ, toHashSet. Эти функции создают Set вместо List и должны быть немного более эффективными, чем distinct.


Вы можете счесть полезным: