一、List集合用法
/**
* Scala的LiSt包装了很多有用的方法,但是不支持append,
* 因为随着列表变长append的耗时也会变得很长,而使用 :: 做前缀添加列表只会耗费很短的时间。
*/
// 创建一个空的List
val nil = Nil
val nil2 = List() // 第二种方式
// 创建带有三个值的List[String]
val res = List("cool", "tools", "rule")
// 第二种方式 该方法最后必须加 Nil 通过Nil调用 :: 方法进行添加
val thrill = "cool" :: "tools" :: "rule" :: Nil
// 打印出 thrill 列表中索引为1的元素
println(thrill(1))
// 返回thrill列表中长度为4的元素个数
thrill.count(th => th.length == 4)
// 返回去掉前2个元素的列表
val dropThrill = thrill.drop(2)
// 返回去掉后2个元素的列表,dropRight方法从列表末尾开始移除元素
val dropRightThrill = thrill.dropRight(2)
// 返回根据条件过滤后的列表
val dropWhileThrill = thrill.dropWhile(th => th.length == 2)
// 判断列表中是否包含 cool 元素,返回boolean类型
println(thrill.exists(th => th.contains("cool")))
// 返回列表中长度为4的所有元素
val filterThrill = thrill.filter(th => th.length == 4)
// 判断列表中所有元素是否都是以c开头
println(thrill.forall(th => th.startsWith("c")))
// 遍历列表中所有元素
thrill.foreach(th => println(th))
// 方式二
thrill.foreach(println(_))
// 方式三
thrill.foreach(println)
// 返回列表中第一个元素
println(thrill.head)
// 返回列表中最后一个元素
println(thrill.last)
// 返回列表中除最后一个元素的其他所有元素
val initThrill = thrill.init
// 判断列表是否为空
println(thrill.isEmpty)
// 返回列表长度
println(thrill.length)
// 返回原列表中每个元素追加了 xx 字符串的新元素列表
val mapThrill = thrill.map(th => th + "xx")
// 返回用 , 分割的字符串
val strThrill = thrill.mkString(",")
// 返回列表中逆序的新列表
val reverseThrill = thrill.reverse
// 返回列表中前两个元素构成的新列表
val takeThrill = thrill.take(2)
// 返回列表中最后两个元素构成的新列表
val takeRightThrill = thrill.takeRight(2)
// 返回元素长度为4的所有元素构成的新列表
val takeWhileThrill = thrill.takeWhile(th => th.length == 4)
// 返回除第一个元素的其他所有元素构成的新列表
val tailThrill = thrill.tail
二、Tuple元组用法
/**
* 与列表一样,tuple也是不可变的,但是与列表不同,tuple可以包含不同类型的元素。
* 列表应该是List[Int] / List[String] ,而元组可以同时拥有Int和String,
* 元组的实际类型取决于它包含的元素数量和这些元素的类型,
*/
// 该元组类型为 Tuple2[Int,String]
val pair = (100, "Luftballons")
println(pair._1)
println(pair._2)
println(pair.swap) // 交换元素,只有当元组中只包含2个元素时有用
// 该元组类型为 Tuple6[Char, Char, String, Int, String]
val res2 = ('u', 'r', "the", 1, "me")
// 元组遍历
val iterator = res2.productIterator
iterator.foreach(println(_))
// 注意理论上元组可以创建任意长度的元素,但是目前scala只支持到Tuple22, 最后只会包含22个元素。