Почему set.average возвращает другое значение, чем array.average? - PullRequest
2 голосов
/ 19 июня 2020

Я возился со своей IDE и наткнулся на кое-что интересное. Посмотрите на этот код:

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

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

Они выглядят очень похоже, но он возвращает следующее:

2.6666666666666665
2.5

Почему они возвращают разные значения?

1 Ответ

4 голосов
/ 19 июня 2020

From kotlinlang.org :

[Набор - это] Общий c неупорядоченный набор элементов, который не поддерживает повторяющиеся элементы.

Это означает, что даже если вы инициализируете набор как {3, 3, 2}, на самом деле это {3, 2}. Среднее значение {3, 2} составляет 2,5.

...