2024年10天学会kotlin DAY4 数组、集合和 Map 的使用,2024国考笔试和面试

最后

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。

所以,长征路还长,大家还是好好地做个务实的程序员吧。

最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


val list2 = mutableListOf(“张三”,“大漂亮”,“王美丽”,“王五”)

// mutator 的特性 += -= 其实背后就是 运算符重载而已

list2 += “tiger”

list2 += “tt”

list2 -= “tt”

println(list2)

// removeIf

// list2.removeIf{true} // 如果返回的值是 true ,list2 就会自动遍历整个可变集合,一个一个的移除所有的数据

list2.removeIf{it.contains(“t”)} // 过滤集合中的所有元素,只要包含 t 的数据元素,就会被移除

println(list2)

4、List 集合遍历 三种常用方式


val list2 = mutableListOf(“张三”, “大漂亮”, “王美丽”, “王五”)

// 1、 for 循环遍历

for (i in list2) {

print("元素是: $i ")

}

println()

// 2、forEach 遍历

list2.forEach {

print(“元素是: $it”)

}

println()

// 3、forEachIndexed 获取下标和元素的遍历

list2.forEachIndexed { index, item ->

print(“下标是: i n d e x , 元素是: index, 元素是: index,元素是:item”)

}

5、结构语法过滤


val list2 = mutableListOf(“张三”, “大漂亮”, “王美丽”, “王五”)

// 集合配合结构语法

val (v1, v2, v3) = list2

println(v1)

println(v2)

println(v3)

// val 是只读的数据遍历,可以使用var 修改结构出来的数据

var (v11, v22, v33) = list2

v22 = “tiger”

println(v1)

// 也可以使用 _ 符号,来屏蔽你不需要的接收值,算是数据优化,可以优化内存

val (_, v222, v333) = list2

println(v222)

println(v333)

6、set 集合


set 集合,元素不能重复

// set 集合,元素不能重复

val set = setOf(“张三”, “大漂亮”, “王美丽”, “王五”, “大漂亮”)

// set 集合普通的取值方式

// set[0] 在set 中,没有[] 这样的功能, 取set 的集合值

set.elementAt(0)

// set.elementAt(5) 这里会越界崩溃

// set 集合 和list 集合一样,给我们提供了一种有效的取值方式,可以避免下标越界等情况的出现

set.elementAtOrElse(0){“不越界,我就不会出来”}

set.elementAtOrElse(6){“越界了哦,我出来啦”}

set.elementAtOrNull(0)

set.elementAtOrNull(6) ?: “越界啦,你返回了null,空合并操作符,让我出来和你见面”

7、可变的set 集合


// list 中,有可变的集合,set 当然也会有啦。包括集合转变什么的,参照list 就可以

val set = mutableSetOf(“张三”, “大漂亮”, “王美丽”, “王五”, “大漂亮”)

set.add(“tiger”)

set.remove(“王五”)

set.removeIf{

it.contains(“王”)

}

println(set)

8、集合转换与快捷函数


val list = mutableListOf(“张三”, “大漂亮”, “王美丽”, “王五”, “大漂亮”)

// list 转set 去重

println(list.toSet())

// list 转set 去重,再转回list

println(list.toSet().toList())

// 使用快捷去重函数 distinct

println(list.distinct()) // 其实就是内部封装了一下,先把List 转换成 可变长度的set 再转换成list ,和上面的操作是一样的

9、数组类型


在kotlin 语言中,各种数组类型,虽然使用的是引用类型,背后可以编译成Java 基本类型

IntArray intArrayOf

DoubleArray doubleArrayOf

LongArray longArrayOf

ShortArray shortArrayOf

ByteArray byteArrayOf

FloatArray floatArrayOf

BooleanArray booleanArrayOf

Array<对象类型> arrayOf 对象数组

val intArray = intArrayOf(1, 23, 32, 5, 2, 3)

// 其实数组和之前说的集合都是一样的,简单的,不再赘述

intArray[3]

// intArray[7] 下标越界,

intArray.elementAtOrElse(3) { -1 }

intArray.elementAtOrNull(66) ?: -1

// list 集合转数组

val set = intArray.toSet()

println(set)

// Array<对象数组>

val array = arrayOf(File(“文件路径”), File(“文件路径”), File(“文件路径”))

println(array)

10、Map 的创建


// 在kotlin 中,下面两种创建map 的方式,其实是等价的

val map = mapOf(“tiger” to “111”, “ss” to “333”)

val map1 = mapOf(Pair(“tiger”, “111”), Pair(“tiger2”, “”))

11、读取Map 的值


val map = mapOf(“tiger” to 122, “tiger2” to 333)

// 方法一 找不到会返回一个null

println(map[“tiger”])

println(map[“tiger333”]) // 返回null

// 方法二 和数组集合是一样的

println(map.getOrElse(“tiger”) {-1})

println(map.getOrElse(“tiger222”) {-1}) //找不到会返回-1

// 方法三 getOrDefault

println(map.getOrDefault(“tiger”, -1))

println(map.getOrDefault(“tiger4444”, -1)) //找不到会返回-1

// 方法四 getValue

println(map.getValue(“tiger”))

println(map.getValue(“tiger666”)) //找不到会直接崩溃

12、Map 的遍历


val map = mapOf(Pair(“tiger”, 12), Pair(“tiger2”, 34), Pair(“tiger3”, 44), Pair(“tiger4”, 66))

// 第一种

for (i in map){

println(i)

最后

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。

最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

【算法合集】

【延伸Android必备知识点】

【Android部分高级架构视频学习资源】

**Android精讲视频领取学习后更加是如虎添翼!**进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

后更加是如虎添翼!**进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值