03Scala学习: Tuple、Array、Map与文件操作入门实战

一 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 {
  def main(args: Array[String]): Unit = {
    val file = Source.fromURL(" https://www.baidu.com/")

    for (line <- file.getLines()) {
      println(line);
    }
  }

}
打印结果如下所示:
   可以把把网页也看做一个文件,这就是对文件的一个基本操作,
 
DT大数据梦工厂的微信公众号是DT_Spark,每天都会有大数据实战视频发布,请您持续学习。
 
 
Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:
腾讯微云:http://url.cn/TnGbdC 
360云盘:http://yunpan.cn/cQ4c2UALDjSKy   访问密码 45e2 


 
 
 
 
 
 
 

你可能感兴趣的:(scala)