03-列表
8.1.2 列表
列表(List)是一种常用的集合,它以线性的方式存储元素,允许在集合中存放重复对象。和Set一样,Kotlin并没有提供专门的语法来创建List,可以使用标准库中的方法来创建,如mutableListOf()、listOf()和setOf()。
val list= listOf("Java","Kotlin","Node")
println(list) //输出[Java, Kotlin, Node]
val numbers: MutableList<Int> = mutableListOf(1, 2, 3)
val readOnlyView: List<Int> = numbers
println(numbers) // 输出"[1, 2, 3]"
numbers.add(4)
println(readOnlyView) // 输出"[1, 2, 3, 4]"
列表的listOf()是使用ArrayList实现的,其内存的使用效率更高,因而在开发过程中,应尽可能多用只读List。除了上面提到的函数之外,List还提供了一些常用的API。
- isEmpty():判断集合是否为空。
- contains(E):判断集合中是否包含某一元素。
- iterator():返回该只读集合元素的迭代器。
- containsAll(Collection\
):判断集合中是否包含某个集合。 - get(Int):查询集合中某个位置的元素。
- flistIterator():返回一个集合的迭代器。
- listIterator(Int):从指定位置开始,返回集合的迭代器。
- subList(fromIndex: Int, toIndex: Int):返回此列表中指定的起始位置(包括)到结束位置(不包括)之间的集合。
这当中,MutableList\
- add(E):向集合中添加元素,添加成功则返回ture。
- remove(E):移除集合中的元素,移除成功则返回ture。
- addAll(Collection):向集合中添加一个集合,添加成功则返回ture。
- removeAll(Collection):移除集合中的一个集合,移除成功则返回ture。
- retainAll(Collection):判断集合中是否包含某个集合,包含则返回ture。
- clear():将集合中的元素清空。
- add(Int, E):在指定位置添加元素。
- removeAt(Int):移除指定索引处的元素。
- listIterator():返回集合的迭代器。
- listIterator(Int):从指定位置开始,返回集合的迭代器。
- subList(fromIndex: Int, toIndex: Int):返回此列表中指定的开始位置(包括)到结束位置(不包括)之间的集合。
在列表的使用过程中,有时希望及时返回集合快照给调用者,又不希望集合的内容发生改变,则可以使用下面的方式。
class Controller {
val items = mutableListOf<String>("Java","Kotlin","Node")
val item: List<String> get() = items.toList()
}
toList()是一个扩展函数,它返回的是List的副本,因此List的内容并不会发生改变。