kotlin : map


//參考: https://www.jianshu.com/p/da5cc9072f1e

fun main() {

//    create()

    iterator()

}

/**
 * 遍歷
 */
private fun iterator() {
    //創建不可變集合,返回值是Map
    val map = mapOf("Java" to 86, "Kotlin" to 92, "Go" to 76)
    //遍歷Map的key-value對,entries 元素返回key-value對組成的Set
    for (en in map.entries) {
        println("${en.key}->${en.value}")
    }
    println("-------------------------------")
    map.entries.forEach { en ->
        println("${en.key}->${en.value}")
    }
    println("-------------------------------")
    //先遍歷Map的key,再通過key獲取value
    for (key in map.keys) {
        println("${key}->${map[key]}")
    }
    println("-------------------------------")
    //直接用for-in循環遍歷Map
    for ((key, value) in map) {
        println("${key}->${value}")
    }
    println("-------------------------------")
    //用Lambda表達式遍歷Map
    map.forEach { println("${it.key}->${it.value}") }
}

/**
 * 創建
 */
private fun create() {
    //創建不可變集合,返回值是Map
    val map = mapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
    println(map)//按添加順序排列
    println("mapOf的返回對象的實際類型:${map.javaClass}")//LinkedHashMap

    //創建可變集合
    //可變的Map爲操作key-value對提供瞭如下方法:
    //    clear():清空所有的key-value對。
    //    put(key:K,value:V):放入key-value對。如果原來已有key,value將被覆蓋。
    //    putAll(form:Map<out K,V>):批量放入多個key-value對。
    //    remove(key:K):刪除key-value對。
    val mutableMap = mutableMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
    println(mutableMap)//按添加順序排列
    println("mutableMapOf的返回對象的實際類型:${mutableMap.javaClass}")//LinkedHashMap
   
    //創建HashMap集合
    val hashMap = hashMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
    println(hashMap)//不保證排列順序
    println("hashMapOf的返回對象的實際類型:${hashMap.javaClass}")//HashMap
  
    //創建LinkedHashMap
    val linkedHashMap = linkedMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
    println(linkedHashMap)//按添加順序排列
    println("linkedMapOf的返回對象的實際類型:${linkedHashMap.javaClass}")//LinkedHashMap
   
    //創建TreeMap集合
    val treeMap = sortedMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
    println(treeMap)//按key由小到大排列
    println("sortedMapOf的返回對象的實際類型:${treeMap.javaClass}")//TreeMap
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章