Provide parameterless mutable collection factory functions.
#KT-15630
This commit is contained in:
@@ -90,6 +90,16 @@ public inline fun <T> listOf(): List<T> = emptyList()
|
||||
@JvmVersion
|
||||
public fun <T> listOf(element: T): List<T> = java.util.Collections.singletonList(element)
|
||||
|
||||
/** Returns an empty new [MutableList]. */
|
||||
@SinceKotlin("1.1")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun <T> mutableListOf(): MutableList<T> = ArrayList()
|
||||
|
||||
/** Returns an empty new [ArrayList]. */
|
||||
@SinceKotlin("1.1")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun <T> arrayListOf(): ArrayList<T> = ArrayList()
|
||||
|
||||
/** Returns a new [MutableList] with the given elements. */
|
||||
public fun <T> mutableListOf(vararg elements: T): MutableList<T>
|
||||
= if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))
|
||||
|
||||
@@ -56,6 +56,16 @@ public inline fun <K, V> mapOf(): Map<K, V> = emptyMap()
|
||||
@JvmVersion
|
||||
public fun <K, V> mapOf(pair: Pair<K, V>): Map<K, V> = java.util.Collections.singletonMap(pair.first, pair.second)
|
||||
|
||||
/**
|
||||
* Returns an empty new [MutableMap].
|
||||
*
|
||||
* The returned map preserves the entry iteration order.
|
||||
* @sample samples.collections.Maps.Instantiation.emptyMutableMap
|
||||
*/
|
||||
@SinceKotlin("1.1")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun <K, V> mutableMapOf(): MutableMap<K, V> = LinkedHashMap()
|
||||
|
||||
/**
|
||||
* Returns a new [MutableMap] with the specified contents, given as a list of pairs
|
||||
* where the first component is the key and the second is the value. If multiple pairs have
|
||||
@@ -67,6 +77,13 @@ public fun <K, V> mapOf(pair: Pair<K, V>): Map<K, V> = java.util.Collections.sin
|
||||
public fun <K, V> mutableMapOf(vararg pairs: Pair<K, V>): MutableMap<K, V>
|
||||
= LinkedHashMap<K, V>(mapCapacity(pairs.size)).apply { putAll(pairs) }
|
||||
|
||||
/**
|
||||
* Returns an empty new [HashMap].
|
||||
*/
|
||||
@SinceKotlin("1.1")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun <K, V> hashMapOf(): HashMap<K, V> = HashMap<K, V>()
|
||||
|
||||
/**
|
||||
* Returns a new [HashMap] with the specified contents, given as a list of pairs
|
||||
* where the first component is the key and the second is the value.
|
||||
@@ -76,6 +93,12 @@ public fun <K, V> mutableMapOf(vararg pairs: Pair<K, V>): MutableMap<K, V>
|
||||
public fun <K, V> hashMapOf(vararg pairs: Pair<K, V>): HashMap<K, V>
|
||||
= HashMap<K, V>(mapCapacity(pairs.size)).apply { putAll(pairs) }
|
||||
|
||||
/**
|
||||
* Returns an empty new [LinkedHashMap].
|
||||
*/
|
||||
@SinceKotlin("1.1")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun <K, V> linkedMapOf(): LinkedHashMap<K, V> = LinkedHashMap<K, V>()
|
||||
|
||||
/**
|
||||
* Returns a new [LinkedHashMap] with the specified contents, given as a list of pairs
|
||||
|
||||
@@ -35,15 +35,34 @@ public fun <T> setOf(vararg elements: T): Set<T> = if (elements.size > 0) elemen
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun <T> setOf(): Set<T> = emptySet()
|
||||
|
||||
/**
|
||||
* Returns an empty new [MutableSet].
|
||||
*
|
||||
* The returned set preserves the element iteration order.
|
||||
*/
|
||||
@SinceKotlin("1.1")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun <T> mutableSetOf(): MutableSet<T> = LinkedHashSet()
|
||||
|
||||
/**
|
||||
* Returns a new [MutableSet] with the given elements.
|
||||
* Elements of the set are iterated in the order they were specified.
|
||||
*/
|
||||
public fun <T> mutableSetOf(vararg elements: T): MutableSet<T> = elements.toCollection(LinkedHashSet(mapCapacity(elements.size)))
|
||||
|
||||
/** Returns an empty new [HashSet]. */
|
||||
@SinceKotlin("1.1")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun <T> hashSetOf(): HashSet<T> = HashSet()
|
||||
|
||||
/** Returns a new [HashSet] with the given elements. */
|
||||
public fun <T> hashSetOf(vararg elements: T): HashSet<T> = elements.toCollection(HashSet(mapCapacity(elements.size)))
|
||||
|
||||
/** Returns an empty new [LinkedHashSet]. */
|
||||
@SinceKotlin("1.1")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun <T> linkedSetOf(): LinkedHashSet<T> = LinkedHashSet()
|
||||
|
||||
/**
|
||||
* Returns a new [LinkedHashSet] with the given elements.
|
||||
* Elements of the set are iterated in the order they were specified.
|
||||
|
||||
Reference in New Issue
Block a user