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

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

Используйте 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 .


Вы можете оказаться полезными:

  • Итомы Котлина
  • Какие эквиваленты Java 8 Stream.collect доступны в стандартной библиотеке Kotlin?