zoukankan      html  css  js  c++  java
  • kotlin集合操作

    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
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    C#实体类对象修改日志记录
    C#中关于增强类功能的几种方式
    Elasticsearch入坑指南之RESTful API
    React入门实例
    .Net Core+Vue.js+ElementUI 实现前后端分离
    ElasticSearch入坑指南之概述及安装
    MySQL优化技巧
    RabbitMQ入门教程——路由(Routing)
    RabbitMQ入门教程——发布/订阅
    RabbitMQ入门教程——工作队列
  • 原文地址:https://www.cnblogs.com/vana/p/10161210.html
Copyright © 2011-2022 走看看