前言
Kotlin 标准库提供了一整套用于管理集合的工具,集合是可变数量(可能为零)的一组条目,各种集合对于解决问题都具有重要意义,并且经常用到。
-
List 是一个有序集合,可通过索引访问元素。元素可以在 list 中出现多次。List 列表的顺序很重要并且元素可以重复。
-
Set 是唯一元素的集合。一般来说 set 中元素的顺序并不重要。
-
Map 是一组键值对。键是唯一的,每个键都刚好映射到一个值,值可以重复。
集合的可变性与不可变性
在 Kotlin 中存在两种意义上的集合,一种是可以修改的一种是不可修改的。
不可变集合
val stringList = listOf("one", "two", "one")
println(stringList)
val stringSet = setOf("one", "two", "three")
println(stringSet)
可变集合
val numbers = mutableListOf(1, 2, 3, 4)
numbers.add(5)
numbers.removeAt(1)
numbers[0] = 0
println(numbers)
不难发现,每个不可变集合都有对应的可变集合,也就是以 mutable 为前缀的集合。
集合排序
在 Kotlin 中提供了强大对的集合排序的 API,让我们一起来学习一下:
val numbers = mutableListOf(1, 2, 3, 4)
//随机排列元素
numbers.shuffle()
println(numbers)
numbers.sort()//排序,从小到大
numbers.sortDescending()//从大到小
println(numbers)
//定义一个Person类,有name 和 age 两属性
data class Language(var name: String, var score: Int)
val languageList: MutableList<Language> = mutableListOf()
languageList.add(Language("Java", 80))
languageList.add(Language("Kotlin", 90))
languageList.add(Language("Dart", 99))
languageList.add(Language("C", 80))
//使用sortBy进行排序,适合单条件排序
languageList.sortBy { it.score }
println(languageList)
//使用sortWith进行排序,适合多条件排序
languageList.sortWith(compareBy(
//it变量是lambda中的隐式参数
{ it.score }, { it.name })
)
println(languageList)
集合中的 Set 与 Map
/**set**/
val hello = mutableSetOf("H", "e", "l", "l", "o")//自动过滤重复元素
hello.remove("o")
//集合的加减操作
hello += setOf("w", "o", "r", "l", "d")
println(hello)
/**Map<K, V> 不是 Collection 接口的继承者;但是它也是 Kotlin 的一种集合类型**/
val numbersMap = mapOf("key1" to 1, "key2" to 2, "key3" to 3, "key4" to 1)
println("All keys: ${numbersMap.keys}")
println("All values: ${numbersMap.values}")
if ("key2" in numbersMap) println("Value by key \"key2\": ${numbersMap["key2"]}")
if (1 in numbersMap.values) println("1 is in the map")
if (numbersMap.containsValue(1)) println(" 1 is in the map")
文末
想要学习Kotlin,多一个大厂面试机会的朋友们,这里有一份《高级Kotlin强化实战》,能更快更好的帮助你从入门到精通Kotlin!点击下方名片免费领取!
第一章 Kotlin入门教程
- Kotlin 概述
- Kotlin 与 Java 比较
- 巧用 Android Studio
- 认识 Kotlin 基本类型
- 走进 Kotlin 的数组
- 走进 Kotlin 的集合
- 集合问题
- 完整代码
- 基础语法

第二章 Kotlin 实战避坑指南
- 方法入参是常量,不可修改
- 不要 Companion 、INSTANCE ?
- Java 重载,在 Kotlin 中怎么巧妙过渡一下?
- Kotlin 中的判空姿势
- Kotlin 复写 Java 父类中的方法
- Kotlin “狠”起来,连TODO 都不放过!
- is、as` 中的坑
- Kotlin 中的 Property 的理解
- also 关键字
- takeIf 关键字
- takeIf 关键字
- 单例模式的写法

##第三章 项目实战《Kotlin Jetpack 实战》
-
从一个膜拜大神的 Demo 开始
-
Kotlin 写 Gradle 脚本是一种什么体验?
-
Kotlin 编程的三重境界
-
Kotlin 高阶函数
-
Kotlin 泛型
-
Kotlin 扩展
-
Kotlin 委托
-
协程“不为人知”的调试技巧
-
图解协程:suspend

欢迎大家一键三连支持,若需要文中资料,直接点击文末优快云官方认证微信卡片免费领取↓↓↓
本文介绍了Kotlin中集合的基本概念,包括List、Set和Map的特性。讨论了可变与不可变集合的区别,并展示了如何对集合进行排序,如数字列表的升序和降序排序,以及基于多个条件排序的数据类列表。此外,还探讨了Set的添加、删除和合并操作,以及Map的键值对操作。
5256

被折叠的 条评论
为什么被折叠?



