集合类型
Array(数组)
- 有序可重复,索引从0开始
- 大小固定,元素类型不可变
- 定义:Array<泛型>(size,init)或者arrayOf(元素1,元素2,…,元素n)
通过两种方式定义数组
//定义一个数组,有类型推断,也可以不写泛型
var stations_8 = arrayOf("南锣鼓巷", "什刹海", "鼓楼大街", "安德里北街",
"安华桥", "北土城", "奥体公园", "奥林匹克公园", "森林公园南门", "什刹海", "鼓楼大街")
//创建一个有默认值的数组,Array(计数,{默认值})
var station_11 = Array(10, { "11号线的占位符" })
//创建1到n数组,Array(n,{i -> i + 1})
var oneToTen = Array(10, { i -> i + 1 })
- 常用方法
元素计数:count(),是否为空:isEmpty(),是否不为空:isNotEmpty()
stations_8.count()
stations_8.isEmpty()
stations_8.isNotEmpty()
去重:distinct(),或者toSet()转换为Set集合
val stationNoRepeat = station_8.distinct()
数组切割:sliceArray(i..j)
val smallStations = stations_8.sliceArray(2..3)
变为可变数组:MutableList<类型>或mutableListOf(元素1,元素2,…,元素n)
var newStation_8 = mutableListOf("南锣鼓巷", "什刹海", "鼓楼大街", "安德里北街")
在末尾添加元素:add(),添加另一个数组:addAll()
newStation_8.add("安华桥")
newStation_8.addAll(smallStations)
移除某个元素remove(),移除指定位置元素removeAt(),移除整个数组内包含的元素:removeAll()
newStation_8.remove("安华桥")
newStation_8.removeAt(0)
newStation_8.removeAll(smallStations)
数组中是否包含某个元素:contains
newStation_8.contains("什刹海")
Set(集合)
- 特性:无序不重复,大小固定,元素类型不可变
- 定义:Set<泛型>或setOf(元素1,元素2,…,元素n)
- 主要方法:交、差、并、补
定义三个Set集合,一条主线和两条支线
val mainLine = setOf("迪士尼", "徐家汇", "桃浦新村", "南翔", "马陆", "嘉定新城")
val subLineJd = setOf("嘉定新城", "嘉定西", "嘉定北")
val subLineKs = setOf("嘉定新城", "上海赛车场", "安亭", "花桥")
计数:count(),是否为空:isEmpty(),是否不为空:isNotEmpty()
mainLine.count()
mainLine.isEmpty()
mainLine.isNotEmpty()
包含某个元素contains(),包含某个Set集合内全部数据:containsAll()
mainLine.contains("迪士尼")
mainLine.containsAll(subLineJd)
将集合转化为数组:
mainLine.toTypeArray()
集合之间的运算:intersect(交集),subtract(差集),union(并集),minus(补集),返回结果是一个新的Set集合
mainLine.intersect(subLineJd)
mainLine.subtract(subLineJd)
mainLine.union(subLineJd)
mainLine.minus(subLineJd)
将不可变数组转化为可变数组:toMutableSet()
val mutableMainLine = mainLine.union(subLineJd).union(subLineKs).toMutableSet()
mutableMainLine.add("光明路")
val newLines = setOf("昌吉东路","上海汽车城")
mutableMainLine.addAll(newLines)
移除某个元素:remove(),移除一个集合:removeAll()
mutableMainLine.remove("光明路")
mutableMainLine.removeAll(newLines)
Map(集合)
- 集合类型:无序可重复
- 定义:mapOf
本文介绍了Kotlin中的三种集合类型:Array(数组)、Set(集合)和Map(集合)。Array是有序可重复的,大小固定且元素类型不可变。Set则为无序不重复,同样大小固定且元素不变。Map是无序可重复的集合,重点讲解了各种集合的定义、常见操作以及转换方法,如去重、交集、差集、并集等。
1102

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



