字符串差值
val name = "zhangsan"
println("name is:"+name) //这种写法不友好
println(s"name is:$name")//前面加个s ,调用时使用美金符$
文件操作
val source = Source.fromFile("E://")
for (str <- source.getlines()){
println(str)
}
Source.fromURL("http://www.baidu.com") //从网络上读取
通过scala操作hdfs
首先在mavan里面引入hadoop_client的依赖
val configuration = new Configuration()
val fileSystem = FileSystem.get(new URI("hdfs://hadoop001:9000"),configuration)//这样就得到了一个文件系统
fileSystem.mkdirs(new Path("/../.../.."))
//写文件
val out = fileSystem.create(new Path("/data/g6.txt"))
out.write("helloworld".getBytes)
out.flush()
out.close()
//rename
val src = new Path ("/data/g6.txt")
val dst = new Path("/data/g6_1.txt")
val flag = fileSystem.rename(src,dst)
数组
语法格式1:
var 数组名: Array[元素类型] = new Array[元素类型](数组大小)
简化: var 数组名 = new Array [ 元素类型 ](数组大小)
语法格式2:
var 数组名 = Array(元素1,元素2,元素3,…),
这种方式创建数组,创建时是调用的Array的伴生类对象中apply方法,在这个方法中进行数组初始化。
说明:在Scala语言中,除了有不可变的数组外,还有可变数组
不可变数组:数组的长度不能改变,但数组中存储的元素可以改变
可变数组:数组的长度可以改变,数组中存储的元素也可以改变
数组常用算法:
arr.sum 求和
arr.min 求最小值
arr.max 求最大值
arr.sorted 默认升序
arr.sorted(>) 降序
arr.count(_>10)技术
arr.mkString("|") 将arr数字各元素拼,用"|“分隔
arr.mkString(“start:”,”|",“end”) 以start 开头,end结尾,元素用“|” 拼接


b append x ⇒ b.append(x)
StringBuilder vs StringBuffer ?
StringBuilder 不安全,快
StringBuffer 安全,效率低
ArrayList :unsafe
Vector :safe
可变数组
Scala中的Array属于固定长度的数组,同样scala也提供了可变长度的数组:ArrayBuffer如果想使用数组缓冲,需要导入: import scala. collection. mutable. ArrayBuffer


集合
Scala的集合有三大类: List、Set、Map(映射),所有的集合都扩展自Iterable
在Scala中集合有可变(mutable)和不可变(immutable)两种类型,immutable 类型的集合初始化后就不能改变了

Scala中的集合可以分为:可变集合、不可变集合
可变集合是指:长度可变,存储的内容也可变
不可变集合是指:长度不可变,存储的内容也不可变
List集合 一个类型的N个元素,可重复
不可改变的List:import scala.collection.immutable._

List集合的特点:
在Scala中列表要么为空(Nil表示空列表),要么是一个head元素加上一个tail列表

可变的List: import scala.collection.mutable._


set集合 无序不重复
Map集合
不可变的Map : import scala.collection.immutable._
val map=Map(键->值 ,键->值 ,…)
val map=Map((键,值), (键,值) , (键,值) , …)
对Map集合的操作,和java语言一样,都是先取key,再通过key取对应的value

Scala Option(选项)类型用来表示一个值是可选的(有值或无值)。
Option[T] 是一个类型为T的可选值的容器:
如果值存在, Option[T] 就是一个 Some[T]
如果不存在, Option[T] 就是对象 None
map.get(key)返回的是一个option
map.get(key).get 返回value,但如果key不存在,此语句会报错,所以最好写成这样:map.get(key).getOrElse(“xxxx”)表示没取到则输出xxxx

可变的Map:import scala.collection.mutable._

这篇博客介绍了Scala中的字符串差值、文件操作,特别是深入讲解了数组的使用,包括不可变和可变数组,以及数组的常用操作。接着讨论了集合,包括List、Set和Map,并提到了可变和不可变集合的概念。最后,文章提到了Map的操作以及Option类型在处理可能存在或不存在的值时的作用。
7597

被折叠的 条评论
为什么被折叠?



