一 Tuple 元祖
在sclal中有用的容器对象是元祖: Tuple,与列表一样,元素也是不可变的,但与列表不同,在一个元祖可以包含不同类型的元素。所以在scal用的非常多。
def main(args: Array[String]): Unit = { val triple = (100, "Scala", "Spark"); println(triple._1) println(triple._2) println(triple._3) } } |
打印元素通过远祖名( 远祖._1,远祖._2,远祖._3,远祖._* ...)的方式打印出所选的元素。 得到以下返回结果:
100 Scala Spark |
元祖可以同时拥有Int 和 String. 这点与java不同,如果在java中,需要经常创建一个javaBean的类去装多个返回值,而在Scala中就可以简单地额返回一个元祖。这样做就简单了许多,实例化一个装有一些新对象的新元祖,只要把这写对象放在括号里,并用都好分隔即可。
二 Array 数组
scala里面的数组和java里面的比较类似,但是又有些不同,数组的初始化方法比java里面多了一种方式,具体如下:
def main(args: Array[String]): Unit = { val array = Array(1, 2, 3, 4, 5) for (i <- 0 to (array.length - 1)) { println("i = " + array(i)); } } |
可以看出索引是从0开始的,到 (array的长度-1)结束的,这点和C,Java都是一样的。运行代码得到如下结果,打印出数组 array里的元素。
i = 1 i = 2 i = 3 i = 4 i = 5 |
也可以通过另外一种方式打印数组,通过 <-箭头访问数组,遍历数组里的元素。
def main(args: Array[String]): Unit = { val array = Array(1, 2, 3, 4, 5) for (elem <- array) { println(elem); } } |
三 Map 映射
Scala中的映射是键/值对的集合。任何值可以根据它的键进行检索。键是在映射唯一的,但值不一定是唯一的。映射也被称为哈希表。
def main(args: Array[String]): Unit = { var ages = Map("Rocky" -> 27, "Spark" -> 5) for ((k, v) <- ages) { println("Key is " + k + ", value is " + v) } } |
这段代码是打印出映射对应的key和value ,运行代码,得到以下结果:
Key is Rocky, value is 27 Key is Spark, value is 5 |
四 文件的操作
1) 使用 scala.io包下的Source类读取硬盘上的具体文件,此处打印的是 d:\users.txt文件,读取每行的内容并打印到屏幕,代码如下所示:
import scala.io.Source object Test { def main(args: Array[String]): Unit = { val file = Source.fromFile("d:\\users.txt") for (line <- file.getLines()) { println(line); } } } |
注意: 读取的文本文件要经过 UTF-8转码,否则很可能代码包 异常。
打印结果如下,和实际文件中的内容一致。
2)打印制定网址的内容
使用Source.formUrl()方法访问某个网站,读取网页内容并打印到屏幕。
import scala.io.Source object Test { for (line <- file.getLines()) { } |
打印结果如下所示:
可以把把网页也看做一个文件,这就是对文件的一个基本操作,
DT大数据梦工厂的微信公众号是DT_Spark,每天都会有大数据实战视频发布,请您持续学习。 Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2 |