第五章 Kotlin之集合

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

    原文作者:红尘丶
    原文地址: https://www.jianshu.com/p/21c67632b87a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞