Kotlin - Map 字典
Map 类型
Key具有唯一性,存入 Entry 时当 Key 重复时会覆盖之前的 Value。to 关键字本身是一个中缀表达式,返回一个 Pair。
创建方式 | 举例 |
mapOf () |
val map1 = mapOf( 'A' to 3, 2 to "哈哈", false to true ) //随意类型 val map2 = mapOf<Int,String>( 1 to "你", 2 to "我", 3 to "他") //确定类型 |
mutableMapOf () | |
hashMapOf () linkedMapOf () sortedMapOf () |
HashMap,允许null键null值,随着存储Entry顺序会发生变化 LinkedHashMap,使用链表维护顺序,遍历时得到的是先存入的 TreeMap,使用红黑二叉树进行排序 |
emptyMap () |
val em = emptyMap<Int, String>() val me = mapOf<Int, String>() em.size=0,em.isEmpty()=true,em.hashCode()=0 空map都是相等的,em==me 为 true |
属性
.entries |
获取 Map 中的所有 Entry,是一个Set Entry.component1(),访问 Key Entry.component2(),访问 Value |
.keys | 获取 Map 中的所有 Key,是一个Set |
.values | 获取 Map 中的所有 Value,是一个Set |
.size | 获取 Map 中的 Entry 数量,是一个Int |
转换
Map.Entry.toPair () :Pair<K,V> | 把 Map 的 Entry 转换为 Pair,是 entry 的方法 |
Map.toMutableMap () | 把只读的 Map 转化为可编辑的 MutableMap |
Iterable<Pair<K,V>>.toMap (Map):Map |
Iterable<Pair<K,V>>.toMap (Map):Map 把装有 Pair 的 Iterable 转换为 Map |
增删
put (键,值) |
put(K,V):V? 添加 Entry,如果 Key 存在就覆盖 |
plus (二元组/集合/数组/序列) plusAssign (二元组/集合/数组/序列) minus (二元组/集合/数组/序列)????? minusAssign (二元组/集合/数组/序列)???? |
plus(Pair<K,V>):Map<K,V> plus(Map<K,V>):Map<K,V> plus(Iterable<Pair<K,V>>):Map<K,V> plus(Array<Pair<K,V>>):Map<K,V> plus(Sequence<Pair<K,V>>):Map<K,V> 加法运算,拼接,推荐使用操作符 + plusAssign,拼接后赋值给原Map,推荐操作符 += 减法同理????? |
获取
get (键) getValue (键) getOrDefault (键,默认值) getOrElse (键,默认值) getOrPut (键,默认值) |
get(K):V? 根据 Key 获取对应的 Value,没有则返回null,推荐使用操作符 [ ] |
getValue(K):V 根据 Key 获取对应的 Value,没有则报错 |
|
getOrDefault(K,V):V 根据 Key 获取对应的 Value,没有则返回默认值,默认值类型要和原值的类型一样 |
|
getOrElse(K,() -> V):V 同上??? |
|
getOrPut(K,() -> V):V 根据 Key 获取对应的 Value,没有则添加进 Map 中 |
判断
containsKey (键) containsValue (值) |
containsKey(K):Boolean Map中是否包含该 Key,包含true,不含false |
containsValue (V):Boolean Map中是否包含该 Value,包含true,不含false |
运算
mapKeys (function) mapValues (function) |
mapKeys(Map.Entry<K,V> -> R):Map<R,V>) 对 Map 中的 Entry 进行运算后,将 Key 赋予新值 |
mapValues(Map.Entry<K,V> -> R):Map<K,R>) 对 Map 中的 Entry 进行运算后,将 Value 赋予新值 |
筛选
filterKeys (predicate) filterValues (predicate) filter (predicate) |
filterKeys(K -> Boolean):Map<K,V> 返回一个Map,包含所有 Key 满足条件的 Entry |
filterValues(V -> Boolean):Map<K,V> 返回一个Map,包含所有 Value 满足条件的 Entry |
|
filter(Map.Entry<K,V> -> Boolean):Map<K,V> 返回一个Map,包含所有 Entry 满足条件的 Entry |
MutableMap 中的方法
remove (键):值? |
remove (K):V? 根据 Key 移除 Entry,返回被移除的 Value,没有对应的 Key 返回 null |
clear () |
clear ():Unit 清空 MutableMap 中的 Entry |
Kotlin - Map 字典相关推荐
- Bailian2804 词典【map+字典树】
2804:词典 描述 你旅游到了一个国外的城市.那里的人们说的外国语言你不能理解.不过幸运的是,你有一本词典可以帮助你. 输入 首先输入一个词典,词典中包含不超过100000个词条,每个词条占据一行. ...
- DataFrame修改某列的取值(方法:map字典映射和嵌套if,else语句)
文章目录 Map字典映射 if else 嵌套重新赋值 关于map()和匿名函数lambda 在将两种类型数据合并的时候,由于版本不同导致某一列中取值不同,因此在行转列进行统计的时候先要对齐.修改列值 ...
- kotlin map和Json转换,Json解析
分享一下平时使用的简单转换 1.当后台需要json数组作为入参时: val body = toRequestBody("name" to name, "version&q ...
- Flutter 递归查询Map(字典)
下面代码从模拟的公司组织架构数据中,把各级部们的员工都查找出来. void main() {doFind(); }void doFind(){String jsonString = getJsonSt ...
- Python笔记——基本数据结构:列表、元组及字典
转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx Python基本数据结构:列表,元组及字典 一.列表 一组有序项 ...
- (七)数据结构之“字典”
数据结构之"字典" 字典是什么? LeetCode:349.两个数组的交集 LeetCode:20.有效的括号 LeetCode:1.两数之和 LeetCode:3.无重复字符的最 ...
- Java集合Map(四)
****************************Map********************************** Map Hashtable HashMap 1.键值对 2.没有迭代 ...
- python如何给某列数据打标签_Python map, apply, transform 打标签方法汇总(初阶到高阶)...
前言 根据数据的某列进行打标签这个操作在数据分析领域极度常用,对于一些较为复杂的打标签方法,Python 与 SQL 都能很好的实现,这篇针对 Python,主要用到 map,apply 与 tran ...
- 联想搜索实现方案(java基于字典树算法的实现方式)
1.背景 最近我的自动化测试平台(PostGirl)上有一个小需求: 用户在知识库的搜索框输入关键字,下方自动显示出以该关键字开头的词汇.实现效果类似百度的联想搜索(见下图). 2.方案一 开始我的实 ...
最新文章
- 例题3-4 猜数字游戏的提示(Master-Mind Hints, UVa 340)
- Linux对称NAT的UDP穿越
- CASE WHEN 高阶用法?
- 八皇后问题python_python八皇后问题的解决方法
- js 取得input绑定的datalist中的值_javascript基础修炼(9)——MVVM中双向数据绑定的基本原理...
- Java 线程池的实现原理,你真的理解吗?
- 2.中小型企业通用自动化运维架构 -- Ansible 安装
- 基于Web的SQL Server管理工具(SQL Server Web Tools )
- ld: i386 架构于输入文件foo.o 与 i386:x86-64 输出不兼容
- 用.iso文件从硬盘安装redhatlinux7.3(转)
- 计算机课程word教学,浅谈计算机Word表格的制作课程教学
- 苹果7全网通经常显示无服务器,iPhone 7处理器异响查出元凶?英特尔大喊冤枉
- 雷电模拟器激活面具magisk教程
- 未来10年什么行业发展比较好?
- web 前端判断身份证号码是否有效
- Java实现SHA1加密
- java开发之经验之谈
- 几天自学单片机的一些小小心得
- HTML网页设计期末课程大作业~动漫樱桃小丸子5页表格div+css学生网页设计作业源码...
- 那些40岁的程序员都去哪了