第五章 Kotlin之集合

作者: 红尘丶 | 来源:发表于2017-07-17 17:25 被阅读26次

    Kotlin中集合的有别于Java,它区分可变与不可变集合,且具有丰富的操作函数,使得我们使用起来更加简单容易。

    Kotlin中的集合类

    Iterable:父类。所有我们可以遍历一系列的都是实现这个接口。

    MutableIterable:一个支持遍历的同时可以执行删除的Iterables。

    Collection:这个类相是一个范性集合。我们通过函数访问可以返回集合的size、是否为空、是否包含一个或者一些item。这个集合的所有方法提供查询,因为connections是不可修改的。

    MutableCollection:一个支持增加和删除item的Collection。它提供了额外的函数,比如add 、remove、clear等等。

    List:可能是最流行的集合类型。它是一个范性有序的集合。因为它的有序,我们可以使用get函数通过position来访问。

    MutableList:一个支持增加和删除item的List。

    Set:一个无序并不支持重复item的集合。

    MutableSet:一个支持增加和删除item的Set。

    Map:一个key-value对的collection。key在map中是唯一的,也就是说不能有两对key是一样的键值对存在于一个map中。

    MutableMap:一个支持增加和删除item的map。

    有很多不同集合可用的函数操作符,实际开发过程中,可参考API。下面简单列举几个操作符:

    list相关函数

    val  list = listOf(1,2,3,4,5)v

    list.any{ it > 3} //至少有一个元素符合给出的判断条件

    list.all{ it > 3} //所有的元素都大于2

    list.count{ it > 3} //返回大于3的元素的个数

    list.forEach{ println(it) } //遍历集合

    list.max()  

    list.maxBy{ -it } //返回符合条件的最大一项,如果没有则返回null

    list.sumBy{ it % 2 } //返回每一项通过函数转换之后的数据总和

    list.fold(3){ total,count->total+count }//在一个初始值的基础上,从第一项到最后一项通过一个函数累加所有的元素

    list.filter{ it % 2 == 0}//过滤集合

    list.drop(4) //返回包含去掉前n个元素的所有元素列表

    list.slice(listOf(1,3))  //过滤一个list中指定index的元素

    list.take(3) //返回从第一个开始的n个元素

    ...

    Map相关函数

    val map = mapOf<String,String>()

    map.put("one","1") //异常,为什么?留给你们思考,结合文章开头

    val map2 =mapOf("one"tolistOf(1,2,3),"two"tolistOf("2"),"three"to1)

    map2.getOrDefault("four","default_value")  //如果key无four,返回default_value

    map2.getOrElse("four",{ "default_value" }) //与上一个类似,返回lambda值

    map2.forEach{ k ,v -> println("$k -> $v")} //遍历map

    map2.get("one")   等价于 map2["one"]

    ...

    Set相关函数

    val set = setOf(1,2,3,4) //创建不可变set

    val muSet = mutableSetOf() //创建可变set

    muSet.add(1)

    muSet.remove(1)

    muSet.removeIf{ it > 5 }

    muSet.clear()

    ...

    相关文章

      网友评论

        本文标题:第五章 Kotlin之集合

        本文链接:https://www.haomeiwen.com/subject/wnmxhxtx.html