集合相关:
概述
集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用。
集合的分类:
- Set(集)
- List(列表)
- Map(映射)
在Kotlin中,明确的区分了可变和只读的集合(list, set, map等),明确的确定了集合的可读性,有助于良好的编码,以及便于Bug的规避。
Iterable
Iterable接口是最基本的接口,声明了Kotlin中集合的通用方法。
- fun iterator(): Iterator<T> - 返回该集合的元素的迭代器
MutableIterable
MutableIterable接口继承于Iterabl接口,并重写了iterator方法,从该接口继承的类可以表示为可以被迭代并且支持在迭代期间移除元素的元素序列。
- fun iterator(): MutableIterator<T> - 返回该集合的元素的迭代器
Collection
Collection<E>接口继承于Iterable接口,是集合的通用接口,但仅封装了对集合的只读方法,如果想添加或者删除集合,需调用MutableCollection接口的方法。
成员属性
- val size: Int - 集合中元素的数量
函数
- isEmpty(): Boolean - 判断集合是否为空
- fun contains(E): Boolean - 判断集合中是否包含某一元素
- fun containsAll(Collection<E>): Boolean - 判断集合中是否包含某一集合
- fun iterator(): Iterator<E> - 返回该只读集合的元素的迭代器
MutableCollection<E>
MutableCollection<E>继承于Iterable<E>,Collection<E>接口,封装了添加或移除集合中元素的方法。
- fun add(E): Boolean - 向集合中添加元素。添加成功,返回ture,否则返回false。
- fun addAll(Collection): Boolean - 向集合中添加一个集合。添加成功,返回ture,否则返回false。
- fun remove(E): Boolean - 移除集合中的元素。移除成功,返回ture,否则返回false。
- fun removeAll(Collection): Boolean - 移除集合中的一个集合。移除成功,返回ture,否则返回false。
- fun retainAll(Collection): Boolean - 判断集合中是否包含一个集合。如果包含,返回ture,否则返回false。
- fun clear(): Unit - 将集合中的元素清空
Set
概述
Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。
Kotlin没有专门的语法用来创建set,可以使用标准库中的方法, 比如setOf(),mutableSetOf()。
- emptySet(): Set - 创建一个空的只读Set
- setOf(vararg T): Set - 创建一个只读Set
- mutableSetOf(vararg elements): MutableSet - 创建一个可变Set
Set API
查询操作
- val size: Int - 集合中元素的数量
- fun isEmpty(): Boolean - 判断集合是否为空
- fun contains(E): Boolean - 判断集合中是否包含某一元素
- fun iterator(): Iterator - 返回该只读集合的元素的迭代器
批量操作
- fun containsAll(Collection<E>): Boolean - 判断集合中是否包含某一集合
只读Set
下面看一段示例代码:
val setTea: Set<String> = setOf("E", "F", "B", "C", "A", "D", "F", "B")
for (item in setTea) {
println(item)
}
// Log打印
E
F
B
C
A
从示例代码中,我们可以清晰的看出
1. Set中没有重复的对象
2. Set中对象不按特定的方式排序
上面提到了,Set中不能存放重复的对象,对于Ko