Kotlin学习之可变与不可变集合
一、可变集合与不可变集合有哪些?
Kotlin集合框架在kotlin.collections包内,如下:
接口:
-
Iterable<E>
与MutableIterable<E>
; -
Iterator<E>
与MutableIterator<E>
; -
Collection<E>
与MutableCollection<E>
; -
List<E>
与MutableList<E>
; -
Set<E>
与MutableSet<E>
; -
ListIterator<E>
与MutableListIterator<E>
; -
Map<E>
与MutableMap<E>
;
抽象类:
-
AbstractCollection<E>
与MutableAbstractCollection<E>
; -
AbstractIterator<E>
与MutableAbstractIterator<E>
; -
AbstractList<E>
与MutableAbstractList<E>
; -
AbstractSet<E>
与MutableAbstractSet<E>
; -
AbstractMap<E>
与MutableAbstractMap<E>
;
Kotlin集合框架只定义了接口和抽象类,没有定义具体实现类,具体实现都交由Java集合框架。
二、两者的区别
- 理解Kotlin集合,关键在于理解可变与不可变,指的是集合内部的元素和元素的组织方式,而不在于集合类型变量是val还是var。可变集合,变的是元素的值、集合内元素的排列、数量等。
- Kotlin集合框架里,所有的可变集合都继承自相同的不可变集合。
- 不可变集合只能对元素进行读取和查询,可变集合才能对元素进行增减和赋值。
- 相对于Java集合,Kotlin的不可变集合只拥有一部分功能,可变集合才拥有完整的功能。
网友评论