问题
How to remove duplicates from an Array<String?>
in kotlin?
回答1:
Use the distinct extension function:
val a = arrayOf("a", "a", "b", "c", "c")
val b = a.distinct() // ["a", "b", "c"]
There's also distinctBy function that allows one to specify how to distinguish the items:
val a = listOf("a", "b", "ab", "ba", "abc")
val b = a.distinctBy { it.length } // ["a", "ab", "abc"]
As @mfulton26 suggested, you can also use toSet, toMutableSet and, if you don't need the original ordering to be preserved, toHashSet. These functions produce a Set
instead of a List
and should be a little bit more efficient than distinct
.
You may find useful:
- Kotlin idioms
- What Java 8 Stream.collect equivalents are available in the standard Kotlin library?
来源:https://stackoverflow.com/questions/40430297/kotlin-idiomatic-way-to-remove-duplicate-strings-from-array