Kotlin的集合分类:
通常集合中的对象是指集合中对象的引用,集合类型主要有List(列表),Set(集),Map(映射)。
用下面函数创建的List是只读的,不可变的、可序列化的:
listOf()用于创建没有元素的空List
listOf(vararg elements: T)用于创建拥有多个元素的List
listOf(element: T)用于创建只有一个元素的List
例如:
val list : List<Int> = listOf()
Log.e(Tag,list.toString())
打印出:[]
val list: List<String> = listOf("1", "2", "2", "3")
Log.e(Tag, list.toString())
打印出[1, 2, 2, 3]
List的可变集合有两种:
在MutableList中,新增了add/addAll、remove/removeAll/removeAt、set、clear、retainAll等更新修改的操作函数。
val list = mutableListOf("1", "2", "2", "3")
list.add(0,"0") //下标0 的位置添加"0”
Log.e(Tag, list.toString())
打印出[0, 1, 2, 2, 3]
将一个不可变list转变为可变list,可直接调用toMutableList()
val list = listOf("1", "2", "2", "3")
// 调用toMutableList()函数进行转换 声明新的 mlist
val mlist =list.toMutableList()
mlist.add("4")
mlist.add(2,"22")
Log.e(Tag, mlist.toString()) //如果现在打印list 控制台无输出结果
打印出[1, 2, 22, 2, 3, 4]
val list = listOf("1", "2", "2", "3")
val mlist =list.iterator()
while (mlist.hasNext()){
Log.e(Tag, mlist.next())
}
打印出:
1
2
2
3
val list = listOf("1", "2", "2", "3")
for (i in list.indices){
Log.e(Tag, list[i])
}
打印结果同上。
val list = listOf("1", "2", "2", "3")
for(i in list.size downTo 0){
Log.e(Tag, "$i")
}
打印出数组下标
4
3
2
1
0
val list = listOf("1", "2", "2", "3")
for ((index, value) in list.withIndex()) {
Log.e(Tag,"index = $index\tvalue = $value")
}
val list = listOf("1", "2", "2", "3")
list.forEach {
Log.e(Tag,it)
}
list1.retainAll(list2)
list.contains(”6“) //是否有”6“
list.elementAt(1)
如果越界会抛IndexOutOfBoundsException。
list.elementAtOrElse(100, {0}) //默认返回0
list.elementAtOrNull(100) //返回null
list1.any()
list.any { it == 0}
list.all { it % 2 == 0 }
list.none()
list.none { it == 5 }
list.count()
list.count { it % 2 == 0 }
list.mapNotNull { it }
list.reversed()
list.sorted()
和list.sortedDescending()
val list1 = arrayListOf("a1", "a2", "a3")
val list2= arrayListOf("b1", "b2", "b3", "b4")
Log.e(Tag,list2.zip(list1).toString())
打印出[(b1, a1), (b2, a2), (b3, a3)]
val list1 = arrayListOf(0, 1, 2, 3)
val list2 = arrayListOf(4, 5, 6, 7, 8)
Log.e(Tag,list1.plus(list2).toString())
打印出[0, 1, 2, 3, 4, 5, 6, 7, 8]