当前位置:嗨网首页>书籍在线阅读

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\接口继承于MutableCollection\,除了一些基本的方法之外,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的内容并不会发生改变。