Scala基础

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.util.control.Breaks._
import scala.util.Random._

object Test {
   def main(args: Array[String]) {
       breakable{
         while(true){
           var r = new Random().nextInt(10);
           println("r="+r)
           if(r == 5){
             break
           }
         }
       }
   }
}

 

 

异常捕获:

import scala.io.Source
object Test {

   def main(args: Array[String]) {
       try{
         val file = Source.fromFile("D://scale.txt")
         val lines = file.getLines()
         for(content<- lines){
           println(content)
         }
       }catch{
         case ex:FileNotFoundException => println("文件找不到"+ex)
         case ex:Exception => println(ex)
       }finally {
         println("释放资源")
       }
   }
}

也可以写出:

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> for(a<-arrStr) println(a)

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)

 

循环keyvalue

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 {
  def ops {
    val fruit = List("appple", "oranges", "pears")
    println(fruit.head)
    println(fruit.tail)
  }
}
object Test {
   def main(args: Array[String]) {
       val t = new Fruit
       t.ops
   }
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值