1.1 总数操作

方法作用:

any--判断集合中是否有满足条件 的元素;

all--判断集合中的元素是否都满足条件;

count--查询集合中满足条件的元素个数;

fold--在给定初始值的基础上,从第一项到最后一项进行累加;

foldRight--在给定初始值的基础上,从最后一下到第一项进行累加,与fold只是的方向不同;

forEach--循环遍历元素,元素是it,可对每个元素进行相关操作;

forEachIndexed--循环遍历元素,同时得到元素index(下标);

max--查询最大的元素,如果没有则返回null;

maxBy--获取方法处理后返回结果最大值对应的那个元素的初始值,如果没有则返回null;

min--查询最小的元素,如果没有则返回null;

minBy--获取方法处理后返回结果最小值对应那个元素的初始值,如果没有则返回null;

none--判断集合中是否都不满足条件,是则返回true;

reduce--与fold却别在于没有初始值,或者说初始值为0,从第一项到最后一项进行累加;

reduceRight--从最后一下到第一项进行累加,与reduce只是方向的不同;

sumBy--获取方法处理后返回结果值的总和;

1.2 过滤操作

方法作用:

drop--返回去掉前n个元素后的列表;

dropWhile--返回从第一项起,去掉满足条件的元素,直到不满足条件的一项为止;

dropLastWhile--返回从最后一项起,去掉满足条件的元素,直到不满足条件的一项为止;

filter--过滤掉所有不满足条件的元素;

filterNot--过滤掉所有满足条件的元素;

filterNotNull--过滤掉所有值为null的元素;

slice--过滤掉非指定下标的元素,即保留下标对应的元素过滤List中指定下标的元素(比如这里只保留下标为1,3,4的元素),当过滤list中有元素值大于目标List大小时会出现异常;

take--返回从第一个开始的n个元素;

takeLast--返回从最后一个开始的n个元素;

takeWhile--返回不满足条件的下标前面的所有元素的集合;

1.3 映射操作

方法作用:

flatMap--合并两个集合,可以在合并的时候对迭代元素值it多想要的操作;

groupBy--将集合中的元素按照某个条件分组,返回Map;

map--将集合中的元素通过某个方法转换后的结果存到一个集合中;

mapIndexed--除了得到转换后的结果,还可以拿到index(下标);

mapNotNull--执行方法转换前过滤掉为null的元素;

打印结果:

[0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10]

{even=[0,2,4,6,8], odd=[1,3,5,7,9]}

[0,2,4,6,8,10,12,14,16,18]

[0,1,4,9,16,25,36,49,64,81]

[0,2,4,6,8,10,12,14,16,18]

1.4 元素操作

方法作用:

contains--判断集合中是否有指定元素,有则返回true;

elementAt--查找下标对应的元素,如果下标越界会抛IndexOutOfBoundsException异常;

elementAtOrElse--查找下标对应元素,如果越界会根据方法返回默认值(最大下标经方法后的值);

elementAtOrNull--查找下标对应元素,越界会返回Null;

first--返回符合条件的第一个元素,没有则会抛NoSuchElementException异常;

firstOrNull--返回符合条件的第一个元素,没有返回null;

indexOf--返回指定下标的元素,没有返回-1;

indexOfFirst--返回第一个符合条件的元素下标,没有返回-1;

indexOfLast--返回最后一个符合条件的元素下标,没有返回-1;

last--返回符合条件的最后一个元素,没有则会抛NoSuchElementException异常;

lastIndexOf--返回符合条件的最后一个元素,没有返回-1;

lastOrNull--返回符合条件的最后一个元素,没有返回null;

single--返回符合条件的单个元素,如有没有符合的或符合超过一个分别会抛NoSuchElementException或IllegalArgumentException异常;

singleOrNull--返回符合条件的单个元素,如有没有符合或超过一个,返回null;

1.5 生产操作

方法作用:

partition--根据判断条件是否成立,拆分成两个Pair;

plus--合并两个List,可以用"+"替代;

zip--两个集合按照下标组合成一个个的Pair塞到集合中返回;

unzip--将包含多个Pair的List转换成含List的Pair;

Pair对象的数据组成形式为(first, secord),即Pair(1, 2).first可以取出数据1。

1.6 排序操作

方法作用:

reversed--相反顺序;

sorted--自然排序(升序);

sortedBy--根据方法处理结果进行自然(升序)排序;

sortedDescending--降序排序;

sortedByDescending--根据方法处理结果进行降序排序;

注意:新版kotlin需要调用sorted()这样带"ed"后缀的方法才能返回List,而sort()是返回Unit。那么这两种方法还有哪些区别,或者说分别在什么场景下使用?

还是以sort为例,sorted()处理过程中会新建临时的List来保存结果数据,对原来的调用者List不会做任何改变,所以需要将新建的对象返回;而sort()是在原来的List基础上进行元素顺序的调整,不会新建对象,所以不需要返回List。

参考:http://www.cnblogs.com/tgyf/p/6892551.html?utm_source=itdadao&utm_medium=referral

作者:冷鸢J
链接:https://www.jianshu.com/p/05d06419c806
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

kotlin集合操作的更多相关文章

  1. 函数式Android编程(II):Kotlin语言的集合操作

    原文标题:Functional Android (II): Collection operations in Kotlin 原文链接:http://antonioleiva.com/collectio ...

  2. Kotlin入门第二课:集合操作

    测试项目Github地址: KotlinForJava 前文传送: Kotlin入门第一课:从对比Java开始 初次尝试用Kotlin实现Android项目 1. 介绍 作为Kotlin入门的第二课, ...

  3. Kotlin集合——List集合

    Kotlin集合——List集合 转 https://www.jianshu.com/p/3f3bb4943638   List集合的最大特征就是集合元素都有对应的顺序索引.List集合允许使用重复元 ...

  4. Kotlin集合——Map集合

    Kotlin集合——Map集合 转 https://www.jianshu.com/p/da5cc9072f1e Kotlin的Map集合用于保存key-value对,其也被分为可变的和不可变的. 一 ...

  5. JAVASE02-Unit05: 集合操作 —— 查找表

    Unit05: 集合操作 -- 查找表 使用该类测试自定义元素的集合排序 package day05; /** * 使用该类测试自定义元素的集合排序 * @author adminitartor * ...

  6. JAVASE02-Unit04: 集合框架 、 集合操作 —— 线性表

    Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Co ...

  7. oracle之集合操作函数---minus、union、intersect

    集合操作符专门用于合并多条select语句的结果,包括:UNION,UNION ALL,INTERSECT,MINUS.当使用集合操作函数时,需保证数据集的字段数据类型和数目一致. 使用集合操作符需要 ...

  8. Scala集合操作

    大数据技术是数据的集合以及对数据集合的操作技术的统称,具体来说: 1.数据集合:会涉及数据的搜集.存储等,搜集会有很多技术,存储技术现在比较经典方案是使用Hadoop,不过也很多方案采用Kafka.  ...

  9. Python 集合set添加删除、交集、并集、集合操作符号

    在Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 1. ...

随机推荐

  1. 添加删除mysql用户

    create user 'hive_user'@'%' identified by '密码'; grant all privileges on hive.* to hive_user@'%'; cre ...

  2. Struts2学习:struts.xml引入自定义的xml文件

    随着项目代码的增多,用一个struts.xml来管理所有功能模块的Action未免显得臃肿且结构不清晰,因此可以根据实际的功能划分,将各模块的Action放在自定义的xml文件中,再引入struts. ...

  3. .NET MVC同页面显示从不同数据库(mssql、mysql)的数据

    控制器: private readonly VipViewModel _model = new VipViewModel(); public static string Msg;// GET: Sys ...

  4. 《C++数据结构-快速拾遗》 基础常识

    1.命名空间函数 namespace wjy { void print() { cout<<"; } int load(int num) { return num; } } us ...

  5. jquery前期总结,及实例

    一.元素查找 1.选择器 id=d------------------------------------------>$("#d") class=c1----------- ...

  6. 重新配置dbconsole的步骤

    重新配置dbconsole的步骤emca -repos dropemca -repos createemca -config dbcontrol dbemctl start dbconsole

  7. 用bayes公式进行机器学习的经典案例

    用bayes公式进行机器学习的经典案例 从本科时候(大约9年前)刚接触Bayes公式,只知道P(A|B)×P(B) = P(AB) = P(B|A)×P(A) 到硕士期间,机器学习课上对P(B|A)P ...

  8. IIS w3wp对应的应用程序

    IIS7以前我們用IISApp查看IIS哪些服務已啟動,但在IIS7已經不適用了,新語法是appcmd.exe list wp.你可以在%windir%\system32\inetsrv\底下找到ap ...

  9. 解决oracle导入未分配表空间的问题

    select 'alter table ' || t.TABLE_NAME || ' allocate extent;' from user_tables t order by t.TABLE_NAM ...

  10. Angular.js实现分页

    一.编写angularJS实现的分页js(网上搜)和样式表(pagination),并在页面引入 二.编写变量和方法 //分页控件控制 $scope.paginationConf={ currentP ...