数组
一、一维数组的声明
var array = new Array[Int](10)
var array : Array[Int] = {}
var array = Array()
import scala.collection.mutable._
var array = ArrayBuffer[Int]()
二、多维数组的声明
var array = Array.ofDim[Int](3,4)
var array = new Array[Array[Int]](10)
映射(Map)
一、可变的Map
import scala.collection.mutable._
var map = Map("Destiny" -> 1,"Freedom" -> 2)
var map = Map(("Destiny",1),("Freedom",2))
二、不可变的Map
import scala.collection.immutable._
var map = Map("Destiny" -> 1,"Freedom" -> 2)
var map = scala.collection.immutable.Map(("Destiny",1),("Freedom",2))
三、Map的操作
//获取Map的Value
map("Freedom")
map.get("Freedom")
map.getOrElse("Freedom",-1)
//判断key是否存在
map.contains("Freedom")
//添加或移除新的元素
map += "Fate" -> 3
map -= "Fate" -> 3
//更新Map的Value
map("Freedom") = 1
//Map的迭代
map.foreach(println)
for(s <- map)
println(s)
集合(List)
一、不可变的List
var list = List(1,2,3)
var nulList : List[Nothing] = List()
var dim : List[List[Int]] = List(List(1,2,3),List(4,5,6))
//查看第一个元素
list.head
//查看除第一个元素外的元素
list.tail
二、可变的LinkedList
import scala.collection.mutable._
var linkedList = LinkedList(1,2,3)
while(linkedList != Nil){
//当前元素乘以2
linkedList.elem = linkedList.elem * 2
//移动指针到下一个元素
linkedList = linkedList.next
}
//高阶函数
linkedList.map(_*2)
序列
一、Vector
Vector是一个带下标的序列,可以通过下标来访问Vector中的元素(不可变)
var vector = Vector(1,2,3)
二、Range
Vector是一个整数的序列
Range(0,5)
println(0 until 5)
print(0 to 5)
('0' to '9') ++ ('A' to 'Z')
//转成List
1 to 5 toList
集
一、Set
不重复元素的集合(不可变)
var s = Set(1,2,3)
二、SortedSet
可排序、可变的
import scala.collection.mutable._
var sortedSet = SortedSet(1,2,3)
//判断元素是否存在
sortedSet.contains(1)
//集运算
var s1 = Set(1,2,3,4,5,6)
var s2 = Set(5,6,7,8,9,10)
//并集
s1 union s2
//交集
s1 interset s2
//补集
s1 diff s2
元组(Tuple)
一、Tuple的声明
var tuple = Tuple3("Destiny","Freedom",1)
var tuple = ("Destiny","Freedom",1)
二、Tuple的操作
//获取某索引的值
tuple._1
//Tuple的迭代
tuple.productIterator.foreach(println)
文件操作
import java.io.{File, FileInputStream, PrintWriter}
import scala.io.Source._
object FileDemo {
def main(args: Array[String]): Unit = {
var source = fromFile("C:\\Users\\Administrator\\Desktop\\log.txt","GB2312")
//将文件作为字符串输出
println(source.mkString)
//将文件的每一行读入并输出
var line = source.getLines()
line.foreach(println)
//读取字符
for (s <- source) println(s)
//读取URL
var url = fromURL("http://www.baidu.com","UTF-8")
println(url.mkString)
//Scala不支持读取二进制文件
//通过调用java的InputStream来实现
var file = new File("C:\\Users\\Administrator\\Desktop\\log.txt");
//实例化FileInputStream
var in = new FileInputStream(file)
//创建一个buffer数组
var buffer = new Array[Byte](file.length().toInt)
//读取文件
println(in.read(buffer))
//关闭流
in.close()
//通过java来实现写文件
var out = new PrintWriter("C:\\Users\\Administrator\\Desktop\\log.txt")
for (s <- 0 until 10) out.println(s)
//关闭流
out.close()
}
}