列表是相同类型的不可变数据的集合。它代表Scala中的LinkedList。
有多种创建列表的方法。他们是,
通用Java风格的编程方法
使用填充方法
使用范围法
使用制表法
使用Lisp风格的编程
在大括号中初始化元素时,创建列表的一般方法和最受欢迎的方法是使用相同的样式在Java中创建列表,因此将其称为Java样式。
语法:
val list_name = List(element1, element2,...)
示例
object MyObject { def main(args: Array[String]) { println("Creating a List in Java Style") val mylist = List(10, 20, 10, 40, 10, 20, 90, 70) println("Element of the list:\n" + mylist) } }
输出结果
Creating a List in Java Style Element of the list: List(10, 20, 10, 40, 10, 20, 90, 70)
fill()
方法在Scala中创建列表如果要创建具有相同数据的多个元素的列表,则将使用该fill()
方法。
语法:
val list_name = List.fill(count)(element)
这里,
count是列表中元素的数量。
element是列表中重复的元素。
示例
object MyObject { def main(args: Array[String]) { println("使用填充方法创建列表 ") val mylist = List.fill(5)("includehelp") println("Element of the list:\n" + mylist) } }
输出结果
使用填充方法创建列表 Element of the list:List(includehelp, includehelp, includehelp, includehelp, includehelp)
range()
方法在Scala中创建列表如果要使用给定范围内的元素创建列表,则将使用该range()
方法。
语法:
val list_name = List.range(start, end, step)
这里,
start:范围的起始值。
end:范围的结束值。
step:步骤计数,即要在列表中跳过的元素。
示例
object MyObject { def main(args: Array[String]) { println("使用范围方法创建列表 ") val mylist = List.range(10, 50, 5) println("Element of the list:\n" + mylist) } }
输出结果
使用范围方法创建列表 Element of the list: List(10, 15, 20, 25, 30, 35, 40, 45)
tabulate()
方法在Scala中创建列表如果要使用创建的元素创建列表,则将一组值传递给函数。
语法:
val list_name = List.tabulate(count)(function)
这里,
count是从0到传递给函数的计数的计数。
传递计数元素的函数。
示例
object MyObject { def main(args: Array[String]) { println("Creating a List using tabulate method") val mylist = List.tabulate(10)(n => n+1) println("Elements of the list:\n" + mylist) } }
输出结果
Creating a List using tabulate method Elements of the list: List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
如果要使用Lisp样式编程通过::创建List。
语法:
val list_name = element1 :: element2 :: Nil
这里的Nil用于结束列表。
示例
object MyObject { def main(args: Array[String]) { println("使用Lisp样式创建列表 ") val mylist = "BMW S1000 RR" :: "Thunderbird 350" :: "Iron 883" :: Nil println("Elements of the list:\n" + mylist) } }
输出结果
使用Lisp样式创建列表 Elements of the list: List(BMW S1000 RR, Thunderbird 350, Iron 883)