1. 程式人生 > 其它 >Scala基礎程式設計練習

Scala基礎程式設計練習

技術標籤:大資料scala

scala練習

初入scala中遇到的練習,不一定是最佳方法

  • 100以內的數求和,求出當和第一次大於 20 的當前數。
import scala.util.control.Breaks._
var m=0
for(i<-1 to 100){
	m+=i
	if(m>20){
	println(i)
	break
}
}
  • 編寫一個包含 100 個隨機數字(Int 型)的 List,通過 map 將此 List
    中所有 成員乘以 2,接下來用 filter 把所有的偶數找出來。提示:scala.util.Random 可生 成隨機數。
var list = List.
fill(100)(scala.util.Random.nextInt(101)).map(_*2).filter(_%2==0) println(list)

九九乘法表

for (i<-1 to 9;j<-1 to i){
  print(s"$j*$i=${i*j} ")
  if(i==j){println()}
}
  • 定義一個沒有返回值的函式,實現輸入一個整數,列印金字塔

在這裡插入圖片描述

    def triangle(rows:Int):Unit={
      def space(row:Int):Unit={
        for (i<-1 to rows-
row){ print(" ") } } def star(row:Int)={ for (j<-1 to 2*row-1){ print("*") } println() } for (i<-1 to rows){ space(i) star(i) } } triangle(5)
  • 編寫函式values(fun:(Int)=>Int,low:Int,hight:Int)
    該函式輸出一個集合,對應給定區間內給定函式的輸入和輸出,比如values(x=>x*x,-5,5)將輸出

在這裡插入圖片描述

   def values(fun: (Int)=> Int, low: Int, high: Int)= (low to high).map{x => (x,fun(x))}
        val x = values(x => x * x, -5, 5)
        println(x)
  • 經典WordCount,按統計資料結果由大到小排序 val
    list=List(“hadoop spark”,“hello world”,“hello spark”,“hello hadoop”)
 val list=List("hadoop spark","hello world","hello spark","hello hadoop")
    list.flatMap(_.split(" ")).map(x=>(x,1)).groupBy(_._1).map(x=>{(x._1,x._2.size)})
      .toList.map(x=>(x._2,x._1)).sortBy(x=>x._1*(-1)).foreach(println)

在這裡插入圖片描述