开发者学堂课程【Scala 核心编程 - 进阶:List 的基本介绍和创建】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9032
List 的基本介绍和创建
内容介绍:
一、基本介绍
二、应用案列
一、基本介绍
Scala 中的 List 和 Jave List 不一样,在 Jave 中 List 是一个接口,真正存放数据是 ArrayList ,而Scala 的List可以直接存放数据,Scala的 List 就是一个 object ,默认情况下 Scala 的 List 是不可变的。 List 属于序列 Seq 。
(强调:纯的一个 List 是没有可变的)
1.Scala的List 特点:
- 不可变
- 属于一个序列
2.结构:
val List = scala.collection.immutable.List
object List extends SeqFactory[List]
从该结构中看出,immutable.List 继承 SeqFactory[List]
二、应用案列
1.代码
object ListDemo01
{
def main (args:Array[String]): Unit={
val list01=List(1,2,3) //创建时,直接分配(没有引包就能使用)
println(list01)
val list02=Nil //空集合。
println(list02)
}
}
2.说明
(1)在默认情况下,该 List 是引入
scala.collection.immutable.List 这个包,即不可变(List 是不可变的,ListBuffer 可变)
(2)在 scala 中,List 就是不可变的,但是在开发中,经常需要 List 可变的,如果需要使用可变的 List ,则使用 ListBuffer
(3)为什么List 没有引包就能使用,如下图,package object scala 是 scala 的一个包对象,默认情况下 scala 这个包是被引入的,意味着包对象可以直接使用,所以 List 可以直接使用。(List 在 package object scala 做了一个声明
( val List = scala.collection.immutable.List))
(4)val Nil =scala.collection.immutable .Nil
Nil 是空集合,空集合也是一种集合,空集合也有作用,在进行加和减的操作时的前提是一个集合。
3.运行结果
运行上面的代码得到:
D:\program\jdk8\bin\java
LisL(1.2.3)
List()
Process tinished with exit code 0
现在学会了创建一个list 指令分配和空的 List (Nil创建也是一个 List,也就是 Nil 也是一个集合,但是里面是空的)