定义与使用数组
-
new一个新数组
//var arr:Array[String] = new Array[String](3)
var z:Array[String] = new Array[String](3)
z(0) = "baidu"; z(1) = "google"; z(2) = "bing"
-
直接定义
//var arr:Array[String] = Array(元素1,元素2,......)
var z:Array[String] = Array("baidu","google","bing")
-
操作数组
//查看数组z的长度
print(z.length)
//查看数组z的第一个元素
print(z.head)
//查看z数组中除了第一个元素外的其他元素
print(z.tail)
//判断数组z是否为空
print(z.isEmpty)
//判断数组z是否包含元素"baiu"
print(z.contains("baidu"))
-
链接数组
//通过操作符"++"连接数组
val arr1 = Array(1,2,3)
val arr2 = Array(4,5,6)
val arr3 = arr1 ++ arr2
print(arr3)
//通过concat()方法连接数组
import Array._
val arr4 = concat(arr1,arr2)
print(arr4)
//创建区间数组,生成数组(1,3,5,7,9)
val arr5 = range(1,10,2)
print(arr5)
定义与使用函数
1.定义两个整数相加的代码
// 1
def add(a:Int,b:Int):Int = {a+b}
print(add)
// 2
def add(a:Int,b:Int):Int = {
var sum = 0;
sum = a+b;
return sum
}
print(add)
2.匿名函数
//定义两个整数相加的匿名函数
(x:Int,y:Int)=>x+y
//调用函数
val addInt = (s:Int,y:Int)=>x+y
//scala占位符例
val addInt = (_:Int)+(_:Int)
addInt(1,2)
3.高阶函数-函数作为参数
def addInt(f:(Int,Int)=>Int,a:Int,b:Int) = f(a,b)
addInt((a:Int,b:Int)=>a+b,1,2)
-
高阶函数-函数作为返回值
def rectangle(length:Double) = (height:Double)=>(length+height)*2
val func=rectangle(4)
println(func(5))
-
函数柯里化
//定义两个整数相加的函数
def addInt(a:Int,b:Int):Int = a+b
addInt(1,2)
//函数柯里化
def addInt(a:Int,b:Int):Int = a+b
addInt(1)(2)
if判断示例
//定义一个变量x,值为10
var x = 10
//使用if判断对变量的值进行判断并输出对应结果
if (x == 10){
println("x的值为10")
}else if (x == 20){
println("x的值为20")
}else{
println("无法判断x的值")
}
使用for循环
//for循环嵌套输出元组
var i,j = 0;
for(i < -1 to 2){
for(j < -1 to 2)
println("(" + i + "," + j + ")")
}
//for循环嵌套if判断示例
for(i <-1 to 10;if i%2 == 0; if i > 6){
println(i)
}
//for...yield示例
var even = for(i<-1 to 10;if i%2 == 0)yield i
定义与使用列表
//定义String类型的列表
val fruit:List[String] = List("apple","pears","oranges")
//定义Int类型的列表
val nums:List[Int] = List(1,2,3,4,5)
//定义Double类型的列表
val double_nums:List[Double] = List(1.0,2.5,3.3)
//定义Nothing类型的列表
val empty:List[Nothing] = List()
//根据初值自动推断列表的数据类型
val fruit2 = List("apple","pears","oranges")
使用“Nil“和”::“定义列表
//定义String类型的列表
val fruit:List[String] = "apple"::"pears"::"oranges"::Nil
//定义Int类型的列表
val nums:List[Int] = 1::2::3::4::5::Nil
//定义Double类型的列表
val double_nums:List[Double] = 1.0::2.5::3.3::Nil
//定义Nothing类型的列表
val empty:List[Nothing] = Nil
常用的查看列表元素的方法示例
fruit.head
fruit.init
fruit.last
fruit.tail
fruit.take(2)
合并两个列表
val num1:List[Int] = List(1,2,3)
val num2:List[Int] = List(4,5,6)
num1:::num2
num1.:::(num2)
List.concat(num1,num2)
contains()方法
val num:List[Int] = List(1,2,3,4,5)
num.contains(3)
num.contains(6)
合并两个集合
val set1:Set[Int] = Set(1,2,3)
val set2:Set[Int] = Set(4,5,6)
set1.++(set2)
定义与使用映射
//定义映射
val person:Map[String,Int] = Map("John"->21,"Betty"->20,"Mike"->22)
//获取person所有的键和值
person.isEmpty
person.keys
person.values
代码用法
Set
val site= Set("Itcast","Google","Baidu")
val nums:Set[Int]=Set()
println("第一个网站是:"+site.head)
println("最后一个网站是:"+site.tail)
println("査看集合site是否为空:"+site.isEmpty)
println("查看集合nums是否为空:"+nums.isEmpty)
println("查看site的前两个网站:"+site.take(2))
Map(映射)
定义Map集合的语法格式如下:
var A:Map[Char,Int]= Map(键 ->值,键 ->值...)//Map键值对,键为Char,值为Int
//定义Map集合
val colors = Map("red" -> "#FF0000","azuer" -> "#F0FFF","peru" -> "#CD853F")
//调用contions判断pru键是否存在
val peruColor = if(colors.contains("peru")) colors("peru") else 0
//
val azureColors = colors.getOrElse("azure",0)
println("获取colors中键为red的值:"+colors("red"))
println("获取colors中所有的键:"+colors.keys)
println("获取colors中所有的值:"+colors.values)
println("获取colors是否为空:"+colors.isEmpty)
//flatten()方法 val list=List(List(1,2,3),List(4,5,6)) list.flatten
//Map()方法 val num:List[Int]=List(1,2,3,4,5) num.map(x=>x*x)
![](https://img-blog.csdnimg.cn/direct/032170f3310d482b8474a8513056e64d.png)
![](https://img-blog.csdnimg.cn/direct/04c15f0f26d84267b86d0d9f48fcf82f.png)
![](https://img-blog.csdnimg.cn/direct/26c153a2f7a943cd850aa763b5b564fc.png)
![](https://img-blog.csdnimg.cn/direct/c39f563f21bd494ba70f65b9ef5421e4.png)
![](https://img-blog.csdnimg.cn/direct/21583a34dc41438abcd58619ac33d06a.png)
![](https://img-blog.csdnimg.cn/direct/3c03e947d9bc4abf8aaeeba661e6f18a.png)
![](https://img-blog.csdnimg.cn/direct/899f177fa6574ad78eb236ca1fc98003.png)
![](https://img-blog.csdnimg.cn/direct/ec6b55cf858846559262d4f42128bc89.png)
![](https://img-blog.csdnimg.cn/direct/7314e99f7d4c42a2a351aff72a0d46a5.png)
![](https://img-blog.csdnimg.cn/direct/daadd97e4e204a1c9717f04aee7b9b93.png)
![](https://img-blog.csdnimg.cn/direct/3f9357418b024255b10a43226e1e8c13.png)
![](https://img-blog.csdnimg.cn/direct/73db4cd16457413fa132937dc2464153.png)
读写文件
import java.io._
val pw = new PrintWriter(new File("/opt/text.txt"))
pw.println("I am learning Scala")
CSV文件的读取
CSV文件的存储
SequenceFile文件的存储
SequenceFile文件的读取