list集合常见方法和属性
集合可以理解为是一个容器,容器操作我们自然想到“增删改查”,但是需要注意可写集合才有“增删改查”,不可写集合只有“查”。
添加元素:add、all
添加元素,主要有如下几种方式:
使用add方法直接追加元素,返回添加成功与否,方法签名如下:
overridefun add(element:E): Boolean
使用add方法在指定位置添加元素,无返回值,方法签名如下:
publicfun add(index:Int, element: E): Unit
使用addAll方法批量添加集合,返回添加成功与否,方法签名如下:
overridefun addAll(elements:Collection<E>): Boolean
使用addAll方法批量添加数组,返回添加成功与否,方法签名如下:
publicfun <T> MutableCollection<in T>.addAll(elements:Array<out T>): Boolean
使用addAll方法在指定位置批量添加元素,返回添加成功与否,addAll方法的方法签名如下:
publicfun addAll(index:Int, elements: Collection<E>): Boolean
上面的方法,我们编写一个案例,验证下,参考代码:
删除元素:remove、removeAt
删除元素,主要有如下几种方式:
我们编写一个案例,验证下上面这些方法,参考代码:
修改元素:set、下标
集合的修改,要通过set方法和下标操作,在Java里面是不可以通过下标操作的,Kotlin中支持下标修改集合。至于下标访问的原理,后面学了操作符重载之后就明白了,在这里,我们可以先把握使用。
我们看看set方法的方法签名:
这里估计大家不懂的就是“operator”这个关键字是什么意思。这个到后期讲解操作符重载就知道了。
我们通过一个案例,来看看集合的修改操作,参考代码:
查询元素:get、getOrNull
集合的修改,要通过get、getOrNull方法,下标操作。在Java里面是不可以通过下标操作的,Kotlin中支持下标修改集合。至于下标访问的原理,后面学了操作符重载之后就明白了,在这里,我们可以先把握使用。
get方法,根据位置返回元素,方法签名如下:
同set方法,get方法的申明上也有一个“operator”。
getOrNull方法,也是根据位置返回元素,如果获取不到元素的时候,返回null,方法签名如下:
publicfun <T> List<T>.getOrNull(index: Int): T? {
return if (index >= 0 && index <= lastIndex) get(index) else null
}
我们通过一个案例,来看看集合的查询操作,参考代码:
是否包含元素:contains方法
判断元素是否包含,list集合提供了contains方法和containsAll方法。
contains方法用于判断集合中是否存包含某个元素,方法接收参数为元素,返回值Boolean类型,方法定义如下:
contains(element: T): Boolean
contains方法用于判断集合中是否存包含多个元素,方法接收一个集合,返回值Boolean类型,方法定义如下:
override fun containsAll(elements: Collection<@UnsafeVariance E>): Boolean
我们通过一个案例,来看看集合的原始是否包含操作,参考代码:
获取元素索引:indexOf方法
indexOf()获取元素对应的位置,从集合开始位置开始查找,找到返回索引,没有找到返回-1。方法签名如下:
public fun indexOf(element: @UnsafeVarianceE): Int
lastIndexOf获取元素对应的位置,从集合结束位置开始查找,找到返回索引,没有找到返回-1。方法签名如下:
public fun lastIndexOf(element: @UnsafeVariance E): Int
我们通过一个案例,来看看集合的是否包含,参考代码:
获取数组长度:size属性、count方法
同数组,获取长度可以通过size属性和count方法去获取,参考代码:
网友评论