Map:
package com.init.demo.collection fun main(args: Array) { /** * Map的定义:mapof (Pair(key,value),Pair(key,value),Pair(key,value),...) *键值对类型 不建议省略 防止圆括号里面的元组Pair初始化时误输入不同的类型 * 常规属性: size-元素计数 isEmpty -空否 * 专有属性:entires 代表Map中所有条目组成的set 每一条类型都是Map.Entry * Map中的Entry类型定义一个接口(interface) 借口描述了一个如何实现key和value的标准 * Pair 具体实现需要符合这个接口标准的实体类型 */ val airPorts = mapOf(Pair("name","小明"),Pair("age","18") ,Pair("gender","男"),Pair("birthday","19930708"),Pair("job","computer") ,Pair("city","重庆"),Pair("country","china"),Pair("high","180"),Pair("weight","135")) println("获取某个key对应的value:get getOrderDefault 下标方法") println(airPorts.get("name")) println(airPorts.getOrDefault("sec","您获取错误")) println(airPorts["name"]) println(airPorts["gender"]) //getOrDefault key有可能不存在或者类型输入错误 查询不到对应的值,就可以输入提示信息 println("获取所有的key:keys属性") println(airPorts.keys) println("获取所有的value:values属性") println(airPorts.values) println("获取所有的条目:entires属性") println(airPorts.entries) println("检查key和value存在情况:containsKey containsValue") println(airPorts.containsKey("job")) println(airPorts.containsValue("computer")) //在获取具体的可以和value时,可应用containsKey containsValue方法先行判断存在性 //既可以在数组中的高阶函数中使用,也可以在Map中使用 println("筛选器:filter filterValues filterValues") println(airPorts.filter { it.value.contains("computer") }) println(airPorts.filterValues { it.contains("computer") }) println(airPorts.filterValues { it.contains("city") }) //filterNot是filter的变种 不符合条件的筛选出来 //filterTo filterNotTo 可以把结果map直接存储到另一个map中 println(airPorts.filterNot { it.value.contains("computer") }) println("变形的函数:map") val newPorts = airPorts.map { "个性特征:"+it.key +",特征值:"+it.value } println(newPorts) println("变形的key:mapKeys") val newPortsKey = airPorts.mapKeys { "个性特征:"+it.key } println(newPortsKey) println("变形的value:mapValues") val newPortsValue = airPorts.mapValues { "特征值:"+it.value } println(newPortsValue) println("极值函数最大值:maxBy") println(airPorts.maxBy { it.value.length }) println("极值函数最小值:mapValues") println(airPorts.minBy { it.key.length }) println("排序 默认按key(字母)来排序:toSortedMap") println(airPorts.toSortedMap()) println("转换成其他集合:toList") println(airPorts.toList()) println("转换成其他集合:toMutableMap") println(airPorts.toMutableMap()) //输出: /*获取某个key对应的value:get getOrderDefault 下标方法 小明 您获取错误 小明 男 获取所有的key:keys属性 [name, age, gender, birthday, job, city, country, high, weight] 获取所有的value:values属性 [小明, 18, 男, 19930708, computer, 重庆, china, 180, 135] 获取所有的条目:entires属性 [name=小明, age=18, gender=男, birthday=19930708, job=computer, city=重庆, country=china, high=180, weight=135] 检查key和value存在情况:containsKey containsValue true true 筛选器:filter filterValues filterValues {job=computer} {job=computer} {} {name=小明, age=18, gender=男, birthday=19930708, city=重庆, country=china, high=180, weight=135} 变形的函数:map [个性特征:name,特征值:小明, 个性特征:age,特征值:18, 个性特征:gender,特征值:男, 个性特征:birthday, 特征值:19930708, 个性特征:job,特征值:computer, 个性特征:city,特征值:重庆, 个性特征:country,特征值:china, 个性特征:high,特征值:180, 个性特征:weight,特征值:135] 变形的key:mapKeys {个性特征:name=小明, 个性特征:age=18, 个性特征:gender=男, 个性特征:birthday=19930708, 个性特征:job=computer, 个性特征:city=重庆, 个性特征:country=china, 个性特征:high=180, 个性特征:weight=135} 变形的value:mapValues {name=特征值:小明, age=特征值:18, gender=特征值:男, birthday=特征值:19930708, job=特征值:computer, city=特征值 :重庆, country=特征值:china, high=特征值:180, weight=特征值:135} 极值函数最大值:maxBy birthday=19930708 极值函数最小值:mapValues age=18 排序 默认按key(字母)来排序:toSortedMap {age=18, birthday=19930708, city=重庆, country=china, gender=男, high=180, job=computer, name=小明, weight=135} 转换成其他集合:toList [(name, 小明), (age, 18), (gender, 男), (birthday, 19930708), (job, computer), (city, 重庆), (country, china), (high, 180), (weight, 135)] 转换成其他集合:toMutableMap {name=小明, age=18, gender=男, birthday=19930708, job=computer, city=重庆, country=china, high=180, weight=135}*/ }
MutableMap
package com.init.demo.collection fun main(args: Array) { /** * MutableMap * 定义:mutableMapOf (Pair(key,value),Pair(key,value),Pair(key,value),...) */ val airPorts = mapOf(Pair("name","小明"),Pair("age","18") ,Pair("gender","男"),Pair("birthday","19930708"),Pair("job","computer") ,Pair("city","重庆"),Pair("country","china"),Pair("high","180"),Pair("weight","135")) val muAirPorts = airPorts.toMutableMap() println("添加或更新:put 下标") muAirPorts["kk"]= "kkhh" muAirPorts["AVG"]= "1823" muAirPorts.put("TURN","OFF") muAirPorts.putIfAbsent("TURN1","ON") println(muAirPorts) println("添加其他Map:putAll 或 += 两者等价") val airPorts1 = mapOf (Pair("name1","小明"),Pair("age1","18") ,Pair("gender1","男"),Pair("birthday1","19930708"),Pair("job1","computer")) muAirPorts.putAll(airPorts1) println(muAirPorts) val airPorts2 = mapOf (Pair("name2","小明"),Pair("age2","18") ,Pair("gender2","男"),Pair("birthday2","19930708")) muAirPorts += airPorts2 println(muAirPorts) println("移除键值对: remove") muAirPorts.remove("name2") println(muAirPorts) println("清空Map: clear") muAirPorts.clear() println(muAirPorts) //输出: /*添加或更新:put 下标 {name=小明, age=18, gender=男, birthday=19930708, job=computer, city=重庆, country=china, high=180, weight=135, kk=kkhh, AVG=1823, TURN=OFF, TURN1=ON} 添加其他Map:putAll 或 += 两者等价 {name=小明, age=18, gender=男, birthday=19930708, job=computer, city=重庆, country=china, high=180, weight=135, kk=kkhh, AVG=1823, TURN=OFF, TURN1=ON, name1=小明, age1=18, gender1=男, birthday1=19930708, job1=computer} {name=小明, age=18, gender=男, birthday=19930708, job=computer, city=重庆, country=china, high=180, weight=135, kk=kkhh, AVG=1823, TURN=OFF, TURN1=ON, name1=小明, age1=18, gender1=男, birthday1=19930708, job1=computer, name2=小明, age2=18, gender2=男, birthday2=19930708} 移除键值对: remove {name=小明, age=18, gender=男, birthday=19930708, job=computer, city=重庆, country=china, high=180, weight=135, kk=kkhh, AVG=1823, TURN=OFF, TURN1=ON, name1=小明, age1=18, gender1=男, birthday1=19930708, job1=computer, age2=18, gender2=男, birthday2=19930708} 清空Map: clear {}*/ }