为什么 set.average return 与 array.average 的值不同?

Why does set.average return a different value than array.average?

我在摆弄我的 IDE 时偶然发现了一些有趣的东西。查看此代码:

val arr1 = intArrayOf(3, 3, 2)
val set1 = setOf(3, 3, 2)

println(arr1.average())
println(set1.average())

这些看起来很相似,但 returns 这个:

2.6666666666666665
2.5

为什么这些返回不同的值?

来自kotlinlang.org

[A set is] A generic unordered collection of elements that does not support duplicate elements.

这意味着即使您将集合初始化为 {3, 3, 2},它实际上是 {3, 2}{3, 2}的平均值是2.5。