gpt4 book ai didi

kotlin - linkedSetOf 和 hashSetOf 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 21:36:06 28 4
gpt4 key购买 nike

在 Kotlin 集合函数中,我们有setOfmutableSetOfsortedSetOflinkedSetOfhashSetOf

前3个理解他们的区别。但是最后两个是什么?他们与他人和他们自己有何不同?

最佳答案

您知道 linkedSetOf 返回一个 LinkedHashSethashSetOf 返回一个 HashSetLinkedHashSetHashSet 之间的区别在于 LinkedHashSet 维护元素插入到集合中或从集合中删除的顺序,而 HashSet 不维护顺序。

观察下面的例子( Kotlin playground ,如果你想看到它的实际效果)

val set: LinkedHashSet<Int> = linkedSetOf(1, 3, 2)

println(set) // [1, 3, 2]

set.remove(3)
set += listOf(5, 4)
println(set) // [1, 2, 5, 4]

val hashSet: HashSet<Int> = hashSetOf(1, 3, 2)

println(hashSet) // [1, 2, 3]

hashSet.remove(3)
hashSet += listOf(5, 4)
println(hashSet) // [1, 2, 4, 5]

如果您查看集合在添加和删除元素的不同实例中的打印方式,您会发现在 LinkedHashSet 的情况下,添加元素的顺序或删除被维护并在迭代时以相同的顺序打印。

注意:只是为了说明 HashSet 不会排序元素,下面是一个示例 ( Kotlin playground )

val linkedHashSet = linkedSetOf("aaa","bbb","ccc")

println(linkedHashSet) // [aaa, bbb, ccc]

linkedHashSet.remove("ccc")
linkedHashSet += listOf("ddd","zzz")
println(linkedHashSet) // [aaa, bbb, ddd, zzz]


val hashSet = hashSetOf("aaa","bbb","ccc")

println(hashSet) // [aaa, ccc, bbb]

hashSet.remove("ccc")
hashSet += listOf("ddd","zzz")
println(hashSet) // [aaa, bbb, zzz, ddd]

关于kotlin - linkedSetOf 和 hashSetOf 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61965983/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com