代码3-42:
import scala.collection.mutable.ArrayBuffer
object Demo {
def main(args: Array[String]) {
val z = ArrayBuffer[String]()
z += "Zara"
println(z.length)
z += ("Nuha", "Ayan")
println(z.length)
z.insert(1, "Amy")
println(z(1))
z.remove(2, 1)
println(z(2))
}
}
代码3-43:
object Demo {
def main(args: Array[String]) {
var myList = Array(1.9, 2.9, 3.4, 3.5)
// 直接数组遍历输出所有元素
for (x <- myList) {
println(x)
}
// 所有元素求和
var total = 0.0
// 索引遍历所有元素,进行累加操作
for (i <- 0 to (myList.length - 1)) {
total += myList(i)
}
println("Total is " + total)
// 索引遍历所有元素,寻找数组最大值
var max = myList(0)
for (i <- 1 to (myList.length - 1)) {
if (myList(i) > max) max = myList(i)
}
println("Max is " + max)
}
}
代码3-44:
import Array._
object Demo {
def main(args: Array[String]) {
var myList1 = Array(1.9, 2.9, 3.4, 3.5)
// 生成新的数组myList2
var myList2 = for (x <- myList1) yield x + 1
// 输出所有数组元素
for (x <- myList2) {
println(x)
}
}
}
代码3-45:
import Array._
object Demo {
def main(args: Array[String]) {
// 使用Range生成数组
var myList1 = range(10, 20, 2)
var myList2 = range(10, 20)
// 打印所有数组元素
for (x <- myList1) {
print(" " + x)
}
println()
for (x <- myList2) {
print(" " + x)
}
}
}
代码3-46:
import Array._
object Demo {
def main(args: Array[String]) {
// 定义三行三列的整型二维数组
var myMatrix = ofDim[Int](3, 3)
// 给各元素赋值
for (i <- 0 to 2) {
for (j <- 0 to 2) {
myMatrix(i)(j) = j
}
}
// 打印二维数组
for (i <- 0 to 2) {
for (j <- 0 to 2) {
print("" + myMatrix(i)(j))
}
println()
}
}
}
代码3-47:
// 字符串类型List
scala> val fruit: List[String] = List("apples", "oranges", "pears")
fruit: List[String] = List(apples, oranges, pears)
// 前一个语句与下面语句等同
scala> val fruit: List[String] = List.apply("apples", "oranges", "pears")
fruit: List[String] = List(apples, oranges, pears)
代码3-47-2:
// 数值类型List
scala> val nums: List[Int] =
以下是重新排版后的每段代码的总结:
代码3-47-2:
// 数值类型List
val nums: List[Int] = List(1, 2, 3, 4)
// 多重List,List的子元素为List
val multiDList = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))
// 遍历List
for (i <- multiDList) println(i)
代码3-48:
// 字符串类型List
val fruit = "apples" :: ("oranges" :: ("pears" :: Nil))
// 数值类型List
val nums = 1 :: (2 :: (3 :: (4 :: Nil)))
// 定义空列表
val empty = Nil
代码3-48-2:
// 多重List,List的子元素为List
val multiDList = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))
代码3-49:
object Demo {
def main(args: Array[String]): Unit = {
// 重复元素"apples",3次
val fruit = List.fill(3)("apples")
println("fruit:" + fruit)
// 重复元素2,10次
val num = List.fill(10)(2)
println("num:''+num)
}
}
代码3-50:
object Demo {
def main(args: Array[String]): Unit = {
val fruit = "apples" :: "oranges" :: "pears" :: Nil
val nums = Nil
// 输出 List 的第一个元素
println("Head of fruit: " + fruit.head)
// 输出 List 的除第一个元素之外的所有元素
println("Tail of fruit: " + fruit.tail)
// 判断 List 是否为空
println("Check if fruit is empty: " + fruit.isEmpty)
println("Check if nums is empty: " + nums.isEmpty)
}
}
代码3-51:
object Demo {
def main(args: Array[String]): Unit = {
// 创建 List
val fruit1 = "apples" :: ("oranges" :: ("pears" :: Nil))
val fruit2 = "mangoes" :: ("banana" :: Nil)
// 使用 ::: 操作符连接两个或者多个列表
var fruit = fruit1 ::: fruit2
println("fruit1 ::: fruit2 :" + fruit )
// 使用集合 .:::() 方法连接两个列表
fruit = fruit1 .:::(fruit2)
println("fruit1 .:::(fruit2) :" + fruit)
}
}