/**
* @Author jdj
* @Date 2021/3/26 4:33 下午
* @Version 1.0
* *
* Scala提供了一套很好的集合实现,提供了一些集合类型的抽象。
* Scala 集合分为可变的和不可变的集合。
* 可变集合可以在适当的地方被更新或扩展。这意味着你可以修改,添加,移除一个集合的元素。
* 而不可变集合类,相比之下,永远不会改变。不过,你仍然可以模拟添加,移除或更新操作。但是这些操作将在每一种情况下都返回一个新的集合,同时使原来的集合不发生改变。
*/
object ListDemo {
def main(args: Array[String]): Unit = {
//Scala List(列表)
//Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表 具有递归的结构(也就是链接表结构)而数组不是。。
val site: List[String] = List("J", "D", "J")
println("site:" + site)
val nums: List[Int] = List(1, 2, 3)
println("nums:" + nums)
val dim: List[List[Int]] = List(
List(1, 2, 3),
List(3, 2, 1),
List(5, 6, 7)
)
println("dim:" + dim)
val nums1 = 1 :: (2 :: (3 :: (4 :: Nil)))
println("nums1:" + nums1)
//Scala列表有三个基本操作:
//head 返回列表第一个元素
//tail 返回一个列表 包含除第一个元素之外的其他元素
//isEmpty 在列表为空时返回 true
val site1 = "q" :: ("w" :: ("r" :: Nil))
println("site1:" + site1)
var s1 = site1.head
println("s1:" + s1)
var s2 = site1.tail
println("s2:" + s2)
var s3 = site1.isEmpty
println("s3:" + s3)
val site2 = Nil
var s4 = site2.isEmpty
println("s4:" + s4)
//连接列表
//你可以使用 ::: 运算符或 List.:::() 方法或 List.concat() 方法来连接两个或多个列表。实例如下:
val site3 = "qq" :: ("ee" :: ("ff" :: Nil))
val site4: List[String] = List("rr", "ee", "gg")
println("site3:" + site3)
println("site4:" + site4)
// 使用 :::
val newSite = site3 ::: site4
println("newSite:" + newSite)
// 使用 concat 方法
val newSite1 = List.concat(site3, site4)
println("newSite1:" + newSite1)
//List.fill() 方法来创建一个指定重复数量的元素列表
val site5 = List.fill(10)("jdj")
println("site5:" + site5)
//List.tabulate()
val squares = List.tabulate(6)(n => n * n)
println("squares:" + squares)
//List.reverse 数组反转
val reSquares = squares.reverse
println("reSquares:" + reSquares)
}
}
网友评论