各种集合对于解决问题都具有重要意义,并且经常用到。与数组不同的是可变集合的大小可以动态改变
- List: 是一个有序列表,可通过索引(下标)访问元素。元素可以在 list 中出现多次、元素可重复。
- Set: 是唯一元素的集合。一组无重复的对象。一般来说 set 中元素的顺序并不重要、无序集合。
- Map:(字典)是一组键值对。键是唯一的,每个键都刚好映射到一个值,值可以重复。
一、 集合的创建
- 集合分为
可变集合,是指集合创建完成之后,可以对集合进行增删改查操作。 不可变集合,是指集合创建完成之后,不能对集合进行增删改查操作,会抛异常。
1、List
// 可变
var a = arrayListOf<Int>()
var b = arrayListOf<Int>(1,2,3)
b.add(3)
b.add(1,3)
// 可变推荐
var c = mutableListOf<Int>()
var d = mutableListOf<Int>(1,2,4)
// 不可变
var a = listOf<Int>(2,3)
/// 空数组
var b = listOf<Int>()
2、Map
可变
var mmap = arrayMapOf<String,String>()
mmap["name"] = "哈哈"
//map字典的创建-使用Pair指定集合中初始化的元素
var mmap1 = arrayMapOf(Pair("key","哈哈"))
mmap1["age"] = "14"
//推荐 可变
var mmp2 = mutableMapOf<String,String>()
mmp2["name"] = "哈哈"
//map字典的创建-不可变字典,不可动态添加、删除元素
// 不可变
var map = mapOf(Pair("name","哈哈"))
var map2 = mapOf<String,String>()
3、Set
// 可变
var set = arraySetOf<Int>()
// 推荐
var set1 = mutableSetOf<Int>()
set1.add(1)
set1.add(2)
set1.add(1)// 添加不进去,不能有重复元素
var set1 = setOf<Int>()
var set2 = setOf<Int>(1,2,4)