我有一个字符串数组
val array = arrayOf("a", "b", "c")
我需要将其转换为HashSet。
val set = HashSet<String>()
使用扩展函数toHashSet
,如下所示:
array.toHashSet()
该函数属于Kotlin库
/**
* Returns a [HashSet] of all elements.
*/
public fun <T> Array<out T>.toHashSet(): HashSet<T> {
return toCollection(HashSet<T>(mapCapacity(size)))
}
将数组转换为集合
import java.util.*
fun main(args: Array<String>) {
val array = arrayOf("a", "b", "c")
val set = HashSet(Arrays.asList(*array))
println("Set: $set")
}
Set: [a, b, c]
直接使用 toSet(*array)
或 toHashSet(*array)
。这些都是 Kotlin 标准库的一部分。
星号 *
是 spread
运算符。它将集合中的所有元素逐个应用,每个元素按顺序传递给 vararg
方法参数。
val array = arrayOf("data", "foo")
// Multiple spreads ["data", "foo", "bar", "data", "foo"]
val mySet = setOf(*array, "bar", *array)
不传递参数setOf()
会导致一个空集合。
以下是您可以使用的所有特定哈希类型:
setOf()
hashSetOf()
linkedSetOf()
mutableSetOf()
sortableSetOf()
这是如何明确定义集合项类型的方法。
setOf<String>()
hashSetOf<MyClass>()
val set = HashSet(Arrays.asList(*array))
中的 * 吗?谢谢! - Hussien Fahmy