首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kotlin】集合操作 ② ( MutableList 可变列表集合 | 修改 MutableList 集合 mutator 函数 )

文章目录 一、MutableList 可变列表集合 二、修改 MutableList 集合 mutator 函数 1、添加元素运算符 += 和 删除元素运算符 -= 2、通过 Lambda 表达式筛选要删除元素...一、MutableList 可变列表集合 ---- 使用 listOf 函数 创建 List 集合 是 只读列表集合 ; 使用 mutableListOf 函数 创建 MutableList 集合...集合 mutator 函数 ---- 修改 MutableList 集合 函数 统称为 mutator 函数 ; 1、添加元素运算符 += 和 删除元素运算符 -= 运算符重载 : MutableList...集合 还有一些 运算符重载 , 添加元素运算符 += 和 删除元素运算符 -= ; 向 MutableList 集合 添加一些元素 , 可使用 += 运算符 : mutableList += "Jack..." 其效果等同于 mutableList.add("Jack") 从 MutableList 集合 删除一些元素 , 可使用 -= 运算符 : mutableList -= "Tom" 其效果等同于

74130

kotlin基础--List、Set、Map

上次我们学习了kotlin字符串操作、数字类型、标准库函数,接下来我们来学习集合,和其他变量类型一样,集合也分为可变和只读 一、List 1.List集合创建与元素获取 调用listOf函数创建集合,...我们可以通过和数组一样方式: "变量[下标]" 来获取元素,或者使用get函数获取 fun main() { //listOf创建List集合 var list = listOf("张三...: "is null") } kotlin还支持利用toList和toMutableList函数实现可变和只读列表转换 fun main() { //调用mutableListOf创建可变list....解构 之前我们提到过,kotlin允许在一个表达式给多个变量赋值 可以用"_"过滤不想要元素 fun main() { //调用mutableListOf创建可变list val...mutableList = mutableListOf("张三", "李四", "王五") val (a, _, c) = mutableList } 二、Set 1.Set创建与元素获取

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

Kotlin极简教程(1)数据类型

因为种种原因,谷歌把Android第一开发语言改成了Kotlin。虽然近来用Java编写Android是是非常便利。...但是经过多次更新后,Java在Android方面的用处肯定会比不上Kotlin,所以有必要学习一下Kotlin。...不需要分号结尾,声明变量时数据可以省略数据类型 注:用val关键词声明变量类似于Java中用final修饰了,声明时必须初始化 2、简单变量之间转换 toInt()、toLong...2.4、forEach遍历 //set为集合名称 set.forEach{ //在{}可以直接用it关键字调用set元素 } 注: //只有MutableSet有add()和remove...:MutableList = mutableListOf() //此时it.age含义就是:将humanList的人,按照年龄来升序排 humanList.sortBy{ it.age

1.1K20

Kotlin 范型之泛型约束、类型投影、星号投影

Any 类似于 Java Object,它是所有非空类型超类型。但是 Any 不能保存 null 值,如果需要 null 作为变量一部分,则需要使用Any?。Any?...类型投影(Type projections) 在上一篇文章>,曾经介绍过 MutableList 是不变,可读可写,没有使用 in、out 修饰。...而使用 in 时,编译可以通过,因为该参数只能出现在方法入参。 此时,list2 和 list3 分别表示一个受限制 MutableList。在 Kotlin ,这种行为被称之为类型投影。...三.星号投影(Star-projections) 星号投影用来表明“不知道关于泛型实参任何信息”。 类似于 Java 无界类型通配符?, Kotlin 使用星号投影*。...范型是 Kotlin 高级特性,相对于 Java 范型,它拥有更多概念。 该系列相关文章: Kotlin 范型之协变、逆变 Kotlin 泛型之类型擦除

2.4K20

Kotlin】集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )

Map 集合 一、List 创建与元素获取 ---- Kotlin 集合分为两类 , 只读集合 和 可变集合 ; 调用 listOf 函数 , 可以 直接创建 List 集合 ; 通过 [] 下标可以...直接获取 List 集合元素 ; fun main() { val list = listOf("Tom", "Jerry") println("${list[0]}") } 上述代码执行结果...: Tom 二、安全获取集合元素 ---- 除了使用 [] 下标获取 List 集合元素外 , Kotlin 还提供了 安全获取集合元素 方法 : getOrElse 和 getOrNull 函数...") 从 MutableList 集合 删除一些元素 , 可使用 -= 运算符 : mutableList -= "Tom" 其效果等同于 mutableList.remove("Tom") 2、通过...Map 值 ---- 获取 Map 值 : 使用 取值运算符 [] 获取 Map 集合值 , 运算符传入 键 , 如果找不到 键 对应 值 , 返回 null ; 使用 Map#getValue

5.1K20

Kotlin如何安全访问lateinit变量实现

Kotlin设计之初就是不允许非null变量在声明期间不进行初始化,为了解决这个问题,Kotlin lateinit 允许我们先声明一个变量,然后在程序执行周期将来某个时候将其初始化,让编译检查时不会...所以我们在 Kotlin 1.2及更高版本上,经常使用基于反射API 快速检查lateinit属性是否已初始化。...) { mList.add("") } } 但如果我们在一个类中有一个lateinit属性,然后尝试在另一类检查它是被初始化,如下所示: class PreA{ lateinit var...){ } } } 会报错: Kotlin: Backing field of ‘var mList: MutableList<String ‘ is not accessible at...this point 因为该反射API限定,当然inner class 是被允许,具体设计细节参考官方 所以我们如有类似需求可以直接在目标类添加新方法来检查lateinit属性: class

1.7K10

Kotlin 扩展函数 与 JS prototypeKotlin 扩展函数 与 JS prototype

Kotlin 扩展函数 与 JS prototype Kotlin 扩展函数 Kotlin扩展函数功能使得我们可以为现有的类添加新函数,实现某一具体功能 。...扩展函数是静态解析,并未对原类添加函数或属性,对类本身没有任何影响。 扩展属性允许定义在类或者kotlin文件,不允许定义在函数。..., Kotlin能给一个类扩展新功能,无需继承该类,也不用任何设计模式(装饰模式等), Kotlin支持扩展函数和扩展属性!...为什么要使用扩展(动机): 在Java,有很多工具类java.util.Collections,使用很繁琐: // Java Collections.swap(list, Collections.binarySearch...prototype就是“一个给类对象添加方法方法”,使用prototype属性,可以给类动态地添加方法 语法 object.prototype.name=value 实例 在本例,我们将展示如何使用

1.6K20

利用Kotlin如何实现Android开发Parcelable详解

虽然名字是 MutableList ,但是实际上这只是 Kotlin 一个辅助类型,可以用 Tools – Kotlin – Show Kotlin Bytecode 查看它编译成 JVM 字节码之后样子...因此我们只需要在对应地方调用 Parcel 对 List 和 ArrayList 处理方法就可以了。...Parcelable 要求每个实现类都有这个 CREATOR 对象,并且它必须是非空、公有的、静态字段。在 Java 程序,对于每个类 CREATOR 有非常稳定实现。...{ return arrayOfNulls(size) } } 在 Kotlin ,使用命名 companion object 确实可以生成一个对应名字静态字段,并且它是公有的,会随着类加载而被创建...requires a Parcelable.Creator… 在Kotlin编写代码过程,需要用到parcelable来进行传值,按照以前写法,进行序列化: class PayTypeInfo :

3.2K20

Collections杂谈(一)

final对于Java开发者来说并不陌生,但也必然说不上"常用",可在Kotlin里其地位却上升为定义变量"关键词",这也说明"可变"与"不可变"概念已经深刻在Kotlin基因里了。...这里 ImmutableList可以强转为 MutableList并修改其中元素。 ?...Kotlin代码要实现100%兼容Java,则无论穿衣服是 MutableList还是 ImmutableList,卸下伪装后都只能是Java List。...你觉得堂堂JetBrains会没想到去实现一个真正Immutable Collections?那当然不可能了,毕竟Kotlin被寄予了厚望。...剩下自己去翻文档吧。 ? 真正Immutable 整个库并不复杂(因为还在开发),但也不简单,因为相比于"可变","不可变"要考虑地方更多,暂且抛开这点不谈,先来简单看看库用法。

82220

Kotlin实战【六】Kotlin中集合创建

kotlin集合 Kotlin集合分为两派:可变集合与不可变集合 ?...列表:List/MutableList; 集:Set/MutableSet; 映射:Map/MutableMap; 集:Collection/MutableCollection; 迭代器:Iterable...,而是一个普通函数 kotlin集合与Java中集合关系 接下来让我们看一下创建对象类型: println(list.javaClass) //class java.util.Arrays$ArrayList...为什么Kotlin没有自己专门集合类呢? 答: 因为使用标准java集合类可以更好和java交互。kotlin与java互调不用考虑集合类转换。...尽管如此Kotlin并没有止步,而是在此基础上增加了很多方法,获取列表最后一个元素,或者得到一个数字列表最大值: val strings = listOf("first",

1K20

第8章 泛型第8章 泛型

当我们从集合获取一个值时候,我们不能都使用Object类型,需要进行强制类型转换。而这个转换过程由于在添加元素时候没有作任何类型限制跟检查,所以容易出错。...在Java 我们可以为类、接口和方法分别定义泛型参数,在Kotlin也同样支持。本节我们分别介绍Kotlin泛型接口、泛型类和泛型函数。...: MutableList = mutableListOf(Apple(), Apple(), Apple()) 由于Kotlin泛型跟Java一样是非协变,下面的调用是编译不通过...extends Fruit> 是 MutableList 父类型。 Kotlin中使用 MutableList 来表示。 超类型下界限定符 ?...对应地在Kotlin并不存在MutableList::class, 而只有 MutableList::class 。

1.9K20

Kotlin数据类型

基本数据类型 Kotlin 基本数据类型包括数字、字符、布尔值和字符串。 数字类型 Kotlin 提供了多种数字类型,用于表示整数和浮点数。每种类型都有其特定内存大小和范围。...数组 数组用于存储相同类型元素集合。在 Kotlin ,数组是一个类,提供了一些有用方法。...提供了多种集合类型,列表、集合和映射,用于存储和操作一组对象。...数组 和 集合类型(列表、集合和映射)用于处理更复杂数据结构。 类型转换 需要显式调用转换函数,以确保数据安全和准确。 字符串操作 功能强大,支持模板表达式和多行字符串。...通过熟悉这些数据类型和操作,您可以在 Kotlin 更高效地处理各种数据和任务。在接下来学习,我们将继续探索 Kotlin 其他特性和用法。

6210

Kotlin入门(16)容器遍历方式

,我们发现集合在实战存在诸多不足,主要包括以下几点: 1、集合不允许修改内部元素值; 2、集合无法删除指定位置元素; 3、不能通过下标获取指定位置元素; 鉴于集合以上缺点难以克服,故而实际开发基本用不到集合...不要小看这个有序性,正因为队列建立了秩序规则,所以它比集合多提供了如下功能(注意凡是涉及到增删改,都必须由MutableList来完成): 1、队列get方法能够获取指定位置元素,也可直接通过下标获得该位置元素...2、MutableListadd方法每次都是把元素添加到队列末尾,也可指定添加位置; 3、MutableListset方法允许替换或者修改指定位置元素; 4、MutableListremoveAt...方法允许删除指定位置元素; 5、MutableList提供了sort系列方法用于给队列元素重新排序,其中sortBy方法表示按照升序排列,sortByDescending方法表示按照降序排列;下面是个给队列排序代码例子...next函数得到下一个元素,也需访问该元素key属性获取键名,访问该元素value属性获取值对象。

2.3K20

Kotlin学习笔记(七)-泛型

前言 这节我们说下Kotlin泛型。...其实Kotlin泛型和Java很相似。他们都是伪泛型,所谓伪泛型就是我们们是无法获取到泛型具体类型。以为Java存在类型擦除和转换。...本篇还是和反射一样,从实际代码编写角度,说下Kotlin泛型 逆变与协变 泛型逆变与协变其其在Java也有。简单概括来说就是实现了泛型协变,<?...Kotlin协变与逆变 泛型参数即可作为传入参数,也可以作为返回值,但被in和out关键字修饰后就不一样了 out 叫协变 只能作为返回值读取 不能写入和修改(Kotlinlist只有get方法...没有add) in 叫逆变 只能写入不能读取 只能作为参数传入 (KotlinComparable只能传入参数) 不变 既没有in也没有out就叫做不变 MutableList(相当于java

64820

【读书笔记】《Kotlin in Action》学习笔记(下)

:【读书笔记】《Kotlin in Action》学习笔记(上) 另外,关于我在 mobilehub 微信留言中免费获赠中文版《 Kotlin 实战》书籍留言我也贴上,当时我回答时候一方面想着能意外收获一本书...当然没有, Kotlin 提供了一个更加优雅解决方案,不信你看看下面的代码: fun copyDataVersion3(source: MutableList, destination...} 4、 Kotlin DSL 使用带有 object 参数中缀函数 我只想说,“厉害了,我 Kotlin 哥”!...Kotlin DSL 真的很好用,像大名鼎鼎 anko 库,使用 DSL 实现 Android Layout 非常给力啊,还有 SQL 数据库操作,另外用过一段时间 TornadoFX ,用 DSL..."kotlin".should(start).with("kot") 没错,但是他精髓你发现了没?精髓在于 start 妙用!

67330
领券