From b93e38518130b9e15534bc5fb7ddefcc61ff9529 Mon Sep 17 00:00:00 2001 From: Swapnil Sankla Date: Sun, 14 Jan 2018 20:53:02 +0530 Subject: [PATCH] Add sample for setOf method Ilya Gorbunov: Improve sample to illustrate stable iteration order and set equality. --- .../samples/test/samples/collections/collections.kt | 13 +++++++++++++ libraries/stdlib/src/kotlin/collections/Sets.kt | 1 + 2 files changed, 14 insertions(+) diff --git a/libraries/stdlib/samples/test/samples/collections/collections.kt b/libraries/stdlib/samples/test/samples/collections/collections.kt index f9b62280762..4ce34529044 100644 --- a/libraries/stdlib/samples/test/samples/collections/collections.kt +++ b/libraries/stdlib/samples/test/samples/collections/collections.kt @@ -271,6 +271,19 @@ class Collections { assertTrue(set == other, "Empty sets are equal") assertPrints(set, "[]") } + + @Sample + fun readOnlySet() { + val set1 = setOf(1, 2, 3) + val set2 = setOf(3, 2, 1) + + // setOf preserves the iteration order of elements + assertPrints(set1, "[1, 2, 3]") + assertPrints(set2, "[3, 2, 1]") + + // but the sets with the same elements are equal no matter of order + assertTrue(set1 == set2) + } } class Transformations { diff --git a/libraries/stdlib/src/kotlin/collections/Sets.kt b/libraries/stdlib/src/kotlin/collections/Sets.kt index dd4530dd064..fecc7763e25 100644 --- a/libraries/stdlib/src/kotlin/collections/Sets.kt +++ b/libraries/stdlib/src/kotlin/collections/Sets.kt @@ -31,6 +31,7 @@ public fun emptySet(): Set = EmptySet * Returns a new read-only set with the given elements. * Elements of the set are iterated in the order they were specified. * The returned set is serializable (JVM). + * @sample samples.collections.Collections.Sets.readOnlySet */ public fun setOf(vararg elements: T): Set = if (elements.size > 0) elements.toSet() else emptySet()