第六章:kotlin:map和list

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())
        }

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值