Kotlin学习之常用高阶函数:map

Kotlin学习之常用高阶函数:map

Map的中文意思是“映射”,它既可以作名词,也可以是动词。

一、Map系列

Array的map函数如下:

与filter相似,它也是委托给mapTo()方法实现:

mapTo()函数接受一个(T)->R类型的函数transform,对数组中的每个元素调用一次transform函数,再将返回值添加到destination中。

与filter函数的区别:

一个数组在执行filter函数后得到的List元素数只会少不会多,而且都是原数组中的数据;

执行map函数后得到的List元素一定与之前一样多,List内的元素一般不会是原数组的数据。

与filter函数相似,Koltin也提供了一些类似的map函数:

mapIndexed()与mapIndexedTo()函数:都接受两个参数的transform函数,第一个参数是Int类型的索引,第二个参数是被映射的元素类型。

mapIndexedNotNull()与mapIndexedNotNullTo()函数:过滤掉null的映射值。

mapNotNull()与mapNotNullTo()函数:相当于map+filterNotNull,过滤掉了null的映射值,映射后的元素也可能少于映射前。

flatMap()与flatMapTo()函数:这两个函数与其他map函数有所不同,的flatMapTo()函数如下:

操作上与mapTo()没有区别,唯一不同在于flatMap函数接受的transform函数,返回值本身就是一个集合,它会把返回集合中的所有元素添加到destination里。

二、实例

输入:字符串,含有多个大小写不一致的单词,使用空格分隔;

输出:字符串,要求将所有字符串调整为首字母大写的形式。

2.1Java解答

2.2Kotlin解答

String.split():通过 split() 函数分割字符串,这一步得到一个 ;

:分别处理分割后的字符串并映射到新的 List 里,需要注意到 Kotlin 字符串可以通过类似数组的方式取指定位置的 char 字符。这一步我们得到一个 ;

:根据要求将集合联结为字符串,它有 6 个可选的参数,分别指定分隔符、前缀、后缀、最大限制数、省略符和操作函数。

joinToString()函数支持传入一个transform函数,所以还可以简化为:

学海无涯苦作舟

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180111G042KT00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券