kotlin学习笔记
map
map 的声明:
map分为可变和不可变
mapOf():创建好的map集合里面不可改变,只能读,并且在初始化中赋值
var map = mapOf("one" to 1, "two" to 2)
MutableMap()可改变
var map2 = mutableMapOf<Int, Int>()
map2[1] = 1
map2[2] to 2
map的方法
putAll():添加另外一个map
claer():清空
remove(key:k):删除指定key元素
合并不同的
var m = map +map2
减去相同的
var m2 = map - map2
获取key的最大值
map.maxBy{it.key}
获取value的最小值
map.minBy{it.value}
求key是1的元素
map.filter{1 in it.key}
遍历map集合
//遍历Map的key-value对,entris元素返回key-value对组成的Set
for (en in map2.entries) {
Log.e("TAG", "${en.key}->${en.value}")
}
//先遍历Map的key,再通过key获取value
for (key in map2.keys) {
Log.e("TAG", "${key}->${map2[key]}")
}
//直接用for-in循环遍历Map
for ((key, value) in map2) {
Log.e("TAG", "${key}->${value}")
}
//用Lambda表达式遍历Map
map2.forEach {
Log.e("TAG", "${it.key}->${it.value}")
}
list
list的声明
list也分为可变和不可变
listOf()不可变,只能读取,并且声明时要赋值
var list1 = listOf<Int>(1,2)
var list2 = listOf(1,2)
ArrayList()声明可变list
var list: ArrayList<Int> = ArrayList()
var arrayList = arrayListOf(1,2,3)
list的方法
list.plus()添加元素或者list
list1[1] =1:下标1赋值为1
list.contains(2):判断集合中是否有指定元素,有就返回true
list.any { it % 2 == 1 }:集合中至少有一个元素满足条件,则返回true
list.all { it % 2 == 1 }:集合中所有元素满足条件,则返回true
list.max():返回最大值,没有则为null
list.indexOf(1):返回元素的下标
list1.last():返回最后一个元素
list1.removeAt(0):删除下标为0的元素
list1.drop(4):删除list的前4个元素
list.filter { it % 2 == 0 } :过滤掉所有不满足条件的元素,也就是说满足条件的留下
list.filterNot { it % 2 == 0 }:与filter相反 过滤掉所有满足条件的元素
list1.clear():清空
list1.reversed():相反顺序,并返回一个新的list,其实list1并没有改变
list1.sorted():自然排序(升序),并返回一个新的list,其实list1并没有改变
list的遍历
for (i in list1) {
Log.e("TAG", list1[i].toString())
}
list.forEach { it -> Log.e("TAG",it.toString()) }
//index为下标,it为元素
list1.forEachIndexed{index, it ->
Log.e("TAG", list1[index].toString())
Log.e("TAG", it.toString())
}