如何在Kotlin中将数组转换为Set(HashSet)?

时间:2018-07-16 19:49:54

标签: arrays kotlin hashmap

我有一个字符串数组

public function index(){
$urlpath = new Helpsql;
$urlpath->cd();
return response()->download($destinationPath);
}

我需要将其转换为HashSet

val array = arrayOf("a", "b", "c")

3 个答案:

答案 0 :(得分:1)

按如下所述使用扩展功能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)))
}

答案 1 :(得分:0)

将数组转换为设置

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]

答案 2 :(得分:0)

科特琳收藏品解决方案

直接使用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>()