kotlin中的Map集合类

Kotlin中的Map分为:java

只读Map。
可变的MutableMap(MutableMap、HashMap、LinkedHashMap)。android

Map源码:

private object EmptyMap : Map<Any?, Nothing>, Serializable {
    private const val serialVersionUID: Long = 8246714829545688274

    override fun equals(other: Any?): Boolean = other is Map<*,*> && other.isEmpty()
    override fun hashCode(): Int = 0
    override fun toString(): String = "{}"

    override val size: Int get() = 0
    override fun isEmpty(): Boolean = true

    override fun containsKey(key: Any?): Boolean = false
    override fun containsValue(value: Nothing): Boolean = false
    override fun get(key: Any?): Nothing? = null
    override val entries: Set<Map.Entry<Any?, Nothing>> get() = EmptySet
    override val keys: Set<Any?> get() = EmptySet
    override val values: Collection<Nothing> get() = EmptyList

    private fun readResolve(): Any = EmptyMap
}

建立只读Map

val mMap = mapOf(0 to "秦", 1 to "川", 2 to "小", 3 to "将")
println(mMap)

打印输出:web

{0=秦, 1=川, 2=小, 3=将}ruby

建立可变Map

mutableMapOf
val mMap = mutableMapOf(0 to "秦", 1 to "川", 2 to "小", 3 to "将")
println("=========向Map中添加元素kotlin,in,android===========") mMap.put(4, "kotlin") mMap.put(5, "in") mMap.put(6, "android") println(mMap) println("===========将Map中元素android替换为java=============") mMap.replace(6, "java") println(mMap) println("===========删除Map中元素kotlin,in,java=============") mMap.remove(4, "kotlin") mMap.remove(5, "in") mMap.remove(6, "java") println(mMap) println("================清除Map中全部元素===================") mMap.clear() println(mMap.size)

打印输出:ide

=========向Map中添加元素kotlin,in,android=========== {0=秦, 1=川, 2=小, 3=将, 4=kotlin, 5=in, 6=android}  
===========将Map中元素android替换为java============= {0=秦, 1=川, 2=小, 3=将, 4=kotlin, 5=in, 6=java}  
===========删除Map中元素kotlin,in,java============= {0=秦, 1=川, 2=小, 3=将}  
================清除Map中全部元素=================== 0
hashMapOf
val mMap = hashMapOf(0 to "秦", 1 to "川", 2 to "小", 3 to "将")
println(mMap)

打印输出:svg

{0=秦, 1=川, 2=小, 3=将}ui

linkedMapOf
val mMap = linkedMapOf(0 to "秦", 1 to "川", 2 to "小", 3 to "将")
println(mMap)

打印输出:spa

{0=秦, 1=川, 2=小, 3=将}.net

sortedMapOf

sortedMapOf(vararg pairs: Paircode

val mMap = sortedMapOf(1 to "川", 3 to "将", 0 to "秦", 2 to "小")
println(mMap)

打印输出:

{0=秦, 1=川, 2=小, 3=将}

遍历Map

使用forEach遍历
val mMap = mutableMapOf(0 to "秦", 1 to "川", 2 to "小", 3 to "将")
mMap.entries.forEach {
    print("" + it.key + "\t" + it.value + "\n")
}

打印输出:

0 秦
1 川
2 小
3 将

本文分享 CSDN - 秦川小将。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索