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://pan.baidu.com/s/1c0noOt6

腾讯微云:http://url.cn/TnGbdC

360云盘:http://yunpan.cn/cQ4c2UALDjSKy   访问密码 45e2

时间: 2024-07-29 12:57:43

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

王家林亲传《DT大数据梦工厂》第三讲Tuple、Array、Map与文件操作入门实战

你想了解大数据,你想成为年薪百万吗?那你还等着什么,快点来吧!跟着王家林老师学习spark大数据 第三讲Tuple.Array.Map与文件操作入门实战 Tuple object TupleOps  { def  main (args: Arrag[string]): Unit = { val triple = (100,”Scala”,”Spark”) printIn(triple._1) printIn(triple._2) } } Array object ArrayOperations

003-Tuple、Array、Map与文件操作入门实战

003-Tuple.Array.Map与文件操作入门实战 Tuple 各个元素可以类型不同 注意索引的方式 下标从1开始 灵活 Array 注意for循环的until用法 数组的索引方式 上面的for是下标索引(繁琐用的不多) 下面的for是增强for循环的元素遍历索引(推荐) Map 注意左边是Key,右边是Value _(下划线也可以作为占位符,形成结构,但无名称不可以访问) 文件操作 进行了Source包的引入 .fromFile() getLines 使用了Iterator 欢迎广大爱好

Python学习系列(五)(文件操作及其字典)

Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出,也可以指定每次read读多少字节,例如: 1 #coding:utf-8 2 fn='test1.py' 3 fp=open(fn,'r') #以读的方式打开文件,文件必须首先存在和,.文件在同一目录下py 4 print 'reading pos:',fp.tell() 5 r=fp.read(20) #

Html5 学习系列(四)文件操作API

原文:Html5 学习系列(四)文件操作API 引言 在之前我们操作本地文件都是使用flash.silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很难进行跨平台.或者跨浏览器.跨设备等情况下实现统一的表现,从另外一个角度来说就是让我们的web应用依赖了第三方的插件,而不是很独立,不够通用.在HTML5标准中,默认提供了操作文件的API让这一切直接标准化.有了操作文件的API,让我们的Web应用可以很轻松的通过JS来控制文件的读取.写入.文件夹.文件等一系列的操作,

Xamarin.Forms学习之Platform-specific API和文件操作

这篇文章的分享原由是由于上篇关于Properties的保存不了,调用SavePropertiesAsync()方法也不行,所以我希望通过操作文件的方式保存我的需要的数据,然后我看了一下电子书中的第二十章和需要相关知识的第九章,这篇文章中的内容则是我学习这两章的一点记录和分享,还是那样,有错请留言指正,谢谢! 不同的平台存在着一些特定的API,通过在电子书中两章的学习,实践一下如何调用这些API和将这些API封装成公共的库,供以后的项目调用.以一个显示平台信息的小实例开始做一个简单的演示,其运行效

python学习列表字符串字典集合文件操作字符串编码与转换

一.列表 1 names = "ZhangYang GuYun XiangPeng XuLiangchen" 2 names = ["ZhangYang", "GuYun", "XiangPeng", "ChengRongHua","XuLiangchen"] 3 names.append("LeiHaiDong") #在列表最后追加一个元素 4 names.inse

python学习点滴记录-Day02补充-文件操作

字符编码: 把人类的字符翻译成计算机能认识的数字 字符编码表 存放着人类字符和计算机数字的对应关系表 ascii.gbk.utf-8.unicode unicode>encode(utf8)>bytes bytes>decode(utf8)>unicode 文件处理补充: 字符以什么格式编码的,就要以什么格式解码 文件的打开模式 文件句柄 = open('文件路径', '模式') 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文

IOS开发-UI学习-沙盒机制&amp;文件操作

?苹果为软件的运行提供了一个沙盒机制 每个沙盒含有3个文件夹:Documents, Library 和 tmp.因为应用的沙盒机制,应用只能在几个目录下读写文件 ?Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录 ?Library:存储程序的默认设置或其它状态信息: ?Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除: ?tmp:提供一个即时创建临时文件的地方, 这三

python学习笔记——(三)文件操作

·集合操作及其相应的操作符表示集合中没有插入,只有添加,因为毕竟无序 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Vergil Zhang list_1 = [1, 4, 5, 7, 3, 6, 7, 9] list_1 = set(list_1) print(list_1, type(list_1)) list_2 = set([2, 6, 0, 66, 22, 8]) print(list_1,list_2) #交集 print