Scala基础
Scala 定义 :
val msg:String = "hello"
|
条件判断:
val m = if(i>200) 100 else 0 |
定义数组:
Val arr = Array(1,2,3);
object while1 {
def main(arrgs:Array[String]){ //循环 val str = Array("hoodoop","spark"); for(elem <- str){ print(elem+" ") } //求和 print(Array(1,2,3).sum) } } |
Map集合:
def main(arrgs:Array[String]){ //循环 val str = Map("hoodoop"->10,"spark"->20); for(elem <- str){ print(elem+" ") //(hoodoop,10) (spark,20) }
for((k,v)<-str){ println("k="+k + " v="+v); // k=hoodoop v=10 k=spark v=20 }
println(str.contains("hoodoop")) //True
println(str("hoodoop")) // 35 } |
For循环:
for(i <- arr ) println(i) |
Tuple元组
val str = ("hoodoop","spark"); println(str._1) //hoodoop |
定义List
def main(arrgs:Array[String]){ //定义LIst val str:List[String] = List("hoodoop","spark"); val fruit = List("apple","orange"); //相当于 val fruits = "apple"::("orange"::Nil); print(fruits.head) //打印第一种水果 apple } |
集合
scala> val arr = Array('a','b','c') arr: Array[Char] = Array(a, b, c)
scala> arr = Array('3') <console>:12: error: reassignment to val arr = Array('3')
|
定义了数组,不能重新定义,val相当于final,但是可以给数组里的内容赋值
需要导包:
scala> import scala.collection.mutable._ import scala.collection.mutable._
scala> val ab = new ArrayBuffer(); ab: scala.collection.mutable.ArrayBuffer[Nothing] = ArrayBuffer()
scala> val aa = new ArrayBuffer[Int]() aa: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer() 追加元素: scala> aa += 1 res6: aa.type = ArrayBuffer(1)
|
往数组添加元素:
scala> val aa = new ArrayBuffer[Int]() aa: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()
scala> aa += 1 res6: aa.type = ArrayBuffer(1)
scala> aa.append(1)
scala> aa res8: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1)
scala> aa += 2 res9: aa.type = ArrayBuffer(1, 1, 2)
集合追加: scala> aa ++= ab res10: aa.type = ArrayBuffer(1, 1, 2)
在aa数组第0位追加数组 scala> aa.insert(0,3,5) scala> aa res13: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(3, 5, 1, 1, 2)
从aa第二个位置去掉3个元素 scala> aa.remove(2,3) scala> aa res15: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(3, 5)
|
作业:生成随机数
import java.util.Random
|
异常捕获:
import scala.io.Source 也可以写出: scala> val file =Source.fromFile("scale.txt") file: scala.io.BufferedSource = non-empty iterator
scala> file.foreach(println) 1 1 |
算法:
1.求和 scala> Array(1,2,3).sum res22: Int = 6
2.不变数组转化为可变数组 scala> val arrStr = ArrayBuffer("Scala","Spark") arrStr: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(Scala, Spark)
scala> arrStr.mkString(",") res23: String = Scala,Spark
scala> arrStr.toBuffer res24: scala.collection.mutable.Buffer[String] = ArrayBuffer(Scala, Spark)
3.增强for循环 Scala Spark
|
Map集合:
1. 定义Map scala> val bigData = Map("Hadoop"->10,"Spark"->20,"Scala"->30) bigData: scala.collection.mutable.Map[String,Int] = Map(Hadoop -> 10, Spark -> 20, Scala -> 30)
循环key,value scala> for((k,v)<-bigData) println(k+" "+v) Hadoop 10 Spark 20 Scala 30
循环key: scala> for(k<-bigData.keySet) println(k) Hadoop Spark Scala |
List列表:
scala> val fruit:List[String] = List("apple","banana","oranges") fruit: List[String] = List(apple, banana, oranges) 也可以写成: scala> val fruit = "apple"::("oranges"::("pears"::Nil)) fruit: List[String] = List(apple, oranges, pears) Head获取List第一个值: scala> println(fruit.head) apple 获取list除去第一个的所有值: scala> println(fruit.tail) List(oranges, pears) |
创建对象调用:
class Fruit {
|