首页
学习
活动
专区
圈层
工具
发布

Kotlin 集合-转换和过滤

前言 在介绍了集合的基本操作后Kotlin 集合 基本介绍 - Z同学 (zinyan.com),本篇文章主要介绍集合的进阶操作: 映射转换,合拢转换,关联转换,集合的几种参数数据过滤。...转换 所谓的转换,就是在保持原有集合数据不变的情况下,基于原集合数据和自定义的判断逻辑创建一个新的集合。 简化:用老集合的数据,创建一个新的集合。两个集合互相独立。...List和Set的映射转换 通过Kotlin提供的map()的一系列方法我们可以针对集合做一个新的映射生成。...Map有key和value 我们能够通过mapKeys和mapValues针对map的特性进行转换 示例1:我们映射了一个新的map对象,将全部的key都进行了替换。...能够将两个集合数组合并成一个二维数组的情况。 合并后的数据是一个Pair对象的List集合,合并后的对象是一个List对象。

91930

Kotlin 集合 Map对象介绍

前言 Map对象也是属于集合的一种。但是相较于集合,Map的数据是Key,Values。以键值对的形式存在。 所以集合的很多操作和函数,在map中有一些变动。...方便我们在Kotlin中使用Map对象进行存储操作。 查询 get() 由于map中的key和value都是用户自定义的,如果我们要获取values ,需要先知道key。...因为该方法不允许返回一个null值对象。 getOrElse()和getOrDefault() 那么,我们如果在查找数据,不存在的时候。希望有其他方法进行替换。该如何处理?...你的map 需要属于可变Map对象mutableMap ,才能进行删除操作。否则remove方法不存在。...在Kotlin中我们可以传Key和Value。同时满足才进行删除操作。 只要有一项不满足都不会进行删除。 我们直接删除指定key的参数。如果该key不存在。不会出现null错误。 相较于这种常见删除。

1.3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Kotlin集合-plus,minus和分组group

    前言 本文是针对kotlin集合的第三篇,继续深入学习关于kotlin集合的使用,学习如何快捷插入数据,plus和minus 分组操作,自定义分组输出等等。...为方便跳转,贴一下前两篇文章的链接 Kotlin 集合-转换,过滤和检测 - Z同学 (zinyan.com) Kotlin 集合 基本介绍 - Z同学 (zinyan.com) 加减操作:plus 和...而针对集合对象,java只能调用相应的add 或者remove等函数进行添加或者移除操作。 而针对集成的常用操作,添加和删除。...如果是移除一个集合对象,那么minus会移除原始集合中的所有存在的元素。 在Map中的特殊定义 因为map是键值对的关系,所以plus和minus 操作符的使用场景,有别于其他的集合对象。...因为map下key 唯一 分组:groupBy 在kotlin提供的针对集合元素进行分组操作:groupBy()该函数才使用lambda语法,并返回一个map对象。

    1.2K31

    Kotlin | 4.类、对象和接口

    本章内容包括: 类和接口 非默认属性和构造方法 数据类 类委托 使用 object 关键字 1、定义类继承结构 /*--------------- 4.1.1 kotlin 中的接口...* Java 的类和方法默认是open的,而 Kotlin 中默认都是final的。 * 如果你想允许创建一个类的子类,需要使用 open 修饰符来标识这个类。...对象声明是Kotlin 中定义单例类的方法。...伴生对象(与包级别函数和属性 起)替代了 Java 静态方法和字段定义 伴生对象与其他对象一样,可以实现接口,也可以拥有有扩展函数和属性 对象表达式是 Kotlin 中针对 Java 匿名内部类的替代品...,并增加了诸如实现个接口的能力和修改在创建对象的作用域中定义的变 的能力等功能

    1.5K10

    redis是如何存储对象和集合的

    这里主要讲redis如何把对象,集合存入,并且取出. 1.在启动类上加入如下代码 private Jedis jedis;private JedisPoolConfig config;private JedisShardInfo...config.setMaxIdle(1000);//最大空闲时间config.setMaxWaitMillis(1000); //最大等待时间config.setMaxTotal(500); //redis池中最大对象个数...使用负值表示没有限制) max-wait: -1 # 连接池中的最大空闲连接 timeout: 5000 # 连接超时时间(毫秒) 3..新建SerializeUtil类,这个类主要是为了将对象序列化...catch (Exception e) { }return null; } } 4.我封装了一个RedisServiceImpl类,主要是用对redis设值和取值...image.png 7.参考文章 Springboot+Redis 配置和使用 关注编程软文,回复领取资源.免费获得大礼包.提供一个平台,让志同道合的人可以走在一起,让我们一起进步。

    3K70

    3-对象和集合初始化器

    "姓名:{0}",person.Name); Console.WriteLine("年龄:{0}", person.Age.ToString()); } 这是编译器的一个小技巧:IL代码显示它和一般的初始化操作效果完全相同...可以支持对象初始化器的类型要满足一个条件是要有一个公有的无参的构造函数。...集合初始化器想要编译成功,需要满足几个基本条件: 1应该实现了Icollection或者泛型版Icollection接口,这样保证集合支持一个Add方法,这是理想情况下; 2实现了IEnumerable...这是比较宽松一点的情况下; 3.总结 可以发现集合初始化器和对象初始化器的共同点是它们都是编译器做的技巧。...和以前的写法产生的效果没有任何本质区别,但是集合初始化器产生的每个对象名我们就不知道了[编译器按照它的规则产生相应的对象名,我们无法直接引用]。

    87180

    基因集合的数据框,列表和对象形式

    癌症)特征基因集合,共50组,最常用; C1: positional gene sets 位置基因集合,根据染色体位置,共326个,用的很少; C2: curated gene sets:(专家)校验基因集合...,基于通路、文献等: C3: motif gene sets:模式基因集合,主要包括microRNA和转录因子靶基因两部分 C4: computational gene sets:计算基因集合,通过挖掘癌症相关芯片数据定义的基因集合...可以看到,GO/KEGG是最出名的,但不是唯一的,起码和kegg数据库并列的就有Reactome数据库。...rbind, lapply(names(genes_to_check), function(x){ data.frame(gs_name=x,gene_symbol=glist[[x]]) })) 对象...(遵循MSigDB的gmt文件标准) 前面的数据框或者列表,要弄成对象就比较麻烦了,需要做一些转换: library(GSVA) # BiocManager::install('GSVA') library

    2.8K10

    Kotlin入门潜修之类和对象篇—泛型及其原理

    可以通过addAll将Integer集合加入到Object集合!按照上面的分析,这显然是不可能的!...extends Object> objs = strs;) 对比于out修饰符,kotlin还提供了另一个修饰符:in,in修饰符和out修饰符的作用刚好相反,in修饰符主要用于生产者场景,即可以写入。...kotlin中的声明处变量可以相对于java中的PECS理解:可简称为CIPO。C即是Consumer,I表示in,P表示生产者,O表示out。CIPO和java中的PECS一致。...道理和上面一样,kotlin认为我们有可能会对from进行写操作,比如我们在copy中为from中的一个元素赋值了一个字符串(虽然我们按正常逻辑不会这么写,我们只需要完成copy的功能就行,但是kotlin...是因为kotlin中的泛型信息同java一样,只在编译器间有,用于编译器做类型检查,而在运行的时候泛型信息就被擦除了,也就是说GenericClass和GenericClass

    1.5K30

    Kotlin 集合 排序详解

    前言 本篇文章,我们开始学习Kotlin中集合的排序操作 实际使用中,我们针对集合对象的排序属于高频操作了。 那么Kotlin是如何给我们提供集合的排序呢?排序是有别于Group分组的。...(公众号中无法访问外网,可以通过阅读原文进行查询) Kotlin 集合 基本介绍 - Z同学 (zinyan.com) Kotlin 集合 转换,过滤和检测 - Z同学 (zinyan.com) Kotlin...集合 plus,minus和分组group详解 - Z同学 (zinyan.com) Kotlin 集合 查询,检测,截取等方法介绍 - Z同学 (zinyan.com) 自然排序 kotlin 已经实现了的排序方式...元素从大到小和从小到大的排序。 sorted() 从小到大排序 kotlin给集合对象实现了一个sorted() 函数,实现了默认的自然排序效果。 也就是按照数值的从小到大进行排序。...我们使用asReversed 和reversed 都能得到集合的倒叙结果。 但是两者的区别在于 reversed 得到的是一个新的集合对象。源集合对象进行改变。它的结果不会改变。

    1.4K30

    使用Comparable和Comparator对Java集合对象进行排序

    在现实生活中,我们可能会遇到需要对集合内的对象进行排序的场景,比如,有一个游戏得分排行榜,如先按照分数的高低由高到低排序,在分数相同的情况下,按照记录创建的时间由早到新的顺序排序。...在Java语言中,要实现集合内对象的排序,咱们可以采用如下两种方式来完成: 使用Comparable来实现 使用Comparator来实现 接下来,我们先使用Comparable和Comparator...、结合示例来完成集合内对象排序的功能,然后,对这两种方式进行比较;最后,结合多属性排序的话,给出相对较好的实践方法。...,然后我们要做的就是对GameRecord对象的集合类进行排序即可,集合的排序可以采用java.util.Collections类的sort方法完成。...三、Comparable和Comparator区别 采用Comparable的方法,该方法从类的内部实现对象的比较。

    7.7K10

    Kotlin 集合 聚合操作详解

    聚合操作是指基于集合内容返回单个值的操作。 例如返回集合中的最大值,或者最小值。 返回集合中的平均值。 返回集合参数累计和。 返回集合元素总数量。 等等。 这些操作,我们称之为聚合操作。...Kotlin 集合 基本介绍 - Z同学 (zinyan.com) Kotlin 集合 转换,过滤和检测 - Z同学 (zinyan.com) Kotlin 集合 plus,minus和分组group详解...- Z同学 (zinyan.com) Kotlin 集合 查询,检测,截取等方法介绍 - Z同学 (zinyan.com) Kotlin 集合 排序详解 - Z同学 (zinyan.com) 常见聚合函数...Fold() 和 Reduce() 特定状态下,可以使用fold和reduce 。进行聚合操作。 这两个方法主要就是可以将集合对象按照自定义的方式进行累积。 fold:你可以定义初始累积值。...foldOrNull()和reduceOrNull() 我们如果直接使用fold 进行聚合操作时,集合是空,那么会直接报出异常。 所以针对该情况, kotlin提供了*OrNull方法。

    91830

    转向Kotlin——对象

    由于Kotlin中没有静态成员的概念,因此Kotlin推出了一个有趣的语法糖:对象。那么对象能取代静态类成员吗?该怎么做呢?下面会详细介绍到。...对象和类一样,只能有一个父类,但可以实现多个接口,下面的代码中,对象不仅继承了JClass类,还实现了JInterface接口: process(object : JClass(), JInterface...如果将匿名对象用于public函数的返回值,或者public属性的类型,那么Kotlin编译器会将这些函数或属性的返回类型重新定义为匿名对象的夫类型,如果匿名对象没有继承任何类,也没有实现任何接口,那么父类型就是...但是在Kotlin中,在匿名对象中就可以任意访问封闭作用域内的变量,包括修改它的值: fun main(agrs: Array) { var n = 10...陪伴对象就是Kotlin中用来解决这个问题的语法糖。 如果在Kotlin类中定义对象,那么就称这个对象为该类的陪伴对象。

    1.1K30
    领券