码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-07-26 15:38:36      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

一 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 


 
 
 
 
 
 
 

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

标签:

原文地址:http://www.cnblogs.com/wangshuo1/p/4677619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!