集合类的概述就不讲了,主要是Set、Map、List三大集合。
而他们的继承层次和Java几乎一致,但也有些不同:
这里介绍几个类:
- MutableIterable
在迭代期间支持删除元素的迭代
- Collection
只读不可写
- MutableCollection
支持添加和删除元素的Collection接口,元素有序,还有add、remove等函数
- List
元素有序,只读不可写
- MutableList
除了拥有List读数据的函数,还有add、clear、remove等写函数
- Set
只读不可写
总结
可以看出,有些集合是可写的,有些集合是不可以写的。
比如List分为只读的List
和 可读可写的MutableList
,Set也一样
而Map虽然没有继承Collection,但是它也分为 只读的 Map
,和可读可写的 MutableMap
Kotlin中分别使用 listOf()
、setOf()
、mapOf()
函数来创建不可变的List、Set、Map容器
使用 mutableListOf()
、mutableSetOf()
、mutableMapOf()
函数来分别创建 MutableList、MutableSet、MutableMap容器。
val list = listOf(1, 2, 3, 4, 5, 6, 7) //创建不可变list
val list1 = mutableListOf(“A”, “B”, “C”) //创建可变list
如果创建没有元素的空List,使用listOf即可,但是这个时候一定要声明参数类型:
//这样声明是会报错的
val emptyList = listOf()
//正确姿势
val emptyList = listOf()
List、Set类继承了Iterable接口,里面扩展了forEach函数来迭代遍历元素,Mao接口也扩展了forEach
list.forEach{
println(it)
}
set.forEach{
println(it)
}
map.forEach{
println(“key = ${it.key}, value = ${it.value}”)
}
另外,如果我们想在遍历元素的时候访问index下标,在List和Set中可以使用 forEachIndexed()
list.forEachIndexed { index, value -> println("list index = ${index}, value = ${value} ")
set.forEachIndexed{ index, value -> println(“set index = ${index} , value = ${value}”)}
}
使用map函数,可以把集合中的元素依次使用给特定的转换函数进行映射操作,元素映射之后的新值会存入一个新的集合中,并返回这个新集合。
在List、Set继承的Iterable接口和Map接口中,都提供了这个map函数。示例如下:
val list = listOf(1, 2, 3, 4, 5, 6, 7)
val set = setOf(1, 2, 3, 4, 5, 6, 7)
val map = mapOf(1 to “a”, 2 to “b”, 3 to “c”)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
最后
为了方便有学习需要的朋友,我把资料都整理成了视频教程(实际上比预期多花了不少精力)
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
- 无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!
- 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,没有人能随随便便成功。
加油,共勉。
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
a486d4c3ab8389e65ecb71ac0)
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算