
94
|
第
5
章
else emptyMap()
mapOf 函数的参数是一个 Pair 实例的可变参数列表,所以中缀操作符函数 to 用于创
建 map 条目。也有相似的函数用于创建可变的 map。
你也可以直接实例化一个实现了 List、Set 或 Map 接口的类,参见示例 5-10。
示例 5-10:实例化链表
@Test
internal fun `instantiating a linked list`() {
val list = LinkedList<Int>()
list.add(3)
➊
list.add(1)
list.addLast(999)
➊
list[2] = 4
➋
list.addAll(listOf(1, 5, 9, 2, 6, 5))
assertThat(list, contains(3, 1, 4, 1, 5, 9, 2, 6, 5))
}
➊
add 方法是 addLast 的别名。
➋
数组风格的访问(调用 get 或 set)。
5.3
为已存在的集合创建只读视图
问题
如何为现有的可变 list、set 或 map 创建其只读版本?
解决方案
要创建一个新的只读集合,请使用 toList、toSet,或 toMap 方法。要在现有集合上
创建只读视图,请将其赋值给 List、Set 或 Map 类型的变量。
讨论
请考虑一个使用 mutableList 工厂方法创建的可变 list。结果 list 具有 add、remove
等方法,这些方法可以使 list