set集合常见方法和属性
set集合可以理解为是一个容器,容器操作我们自然想到“增删改查”,可写集合才有“增删改查”,不可写集合只有“查”,这个点我们可以想到。但是set集合无序,所以没有“改查”,因为某个位置上是什么元素是不确定。
添加元素:add、addAll
相比于list集合的添加,少了在指定位置添加单个元素和多个元素的方法,因为set集合是无序的,无法指定添加位置。
我们编写一个案例,验证下,参考代码:
针对以上代码,我们看到调用addAll方法后,打印set集合的时候,元素变成了无序。
删除元素:remove、removeAll
删除元素,主要有如下几种方式:
相比于list,少了删除指定位置元素的方法
我们编写一个案例,验证下上面这些方法,参考代码:
修改元素:不支持
set集合没有位置的概念,所以,无法确定某一个位置的元素到底是什么,所以无法进行修改。参考截图:
查询元素:elementAt、elementAtOrNull
set集合根据索引位置获取元素,不是通过get方法,通过elementAt方法和elementAtOrNull方法。
我们通过一个案例,演示下两个api,参考代码:
是否包含元素:contains方法、containsAll方法
contains方法用于判断集合中是否存包含某个元素,方法接收参数为元素,返回值Boolean类型,方法定义如下:
contains方法用于判断集合中是否存包含多个元素,方法接收一个集合,返回值Boolean类型,方法定义如下:
我们通过一个案例,来看看集合元素是否包含操作,参考代码:
获取元素索引:indexOf方法
set集合可以通过indexOf、lastIndexOf获取索引。
indexOf()获取元素对应的位置,从集合开始位置开始查找,找到返回索引,没有找到返回-1。方法签名如下:
public fun indexOf(element: @UnsafeVarianceE): Int
lastIndexOf获取元素对应的位置,从集合结束位置开始查找,找到返回索引,没有找到返回-1。方法签名如下:
publicfun lastIndexOf(element: @UnsafeVariance E): Int
我们通过一个案例,来看看集合的是否包含,参考代码:
获取数组长度:size属性、count方法
同数组,同list集合,获取长度可以通过size属性和count方法去获取,参考代码:
[图片上传中...(image.png-f307ca-1512548540475-0)]
网友评论