日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

scala学习之数组操作

發布時間:2025/5/22 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scala学习之数组操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

scala 數組分為定長數組(Array)和變長數組(ArrayBuffer):

定長數組:

/*** 定長數組*/val array = new Array[Int](10) //定長數組 長度為10 初始化值為0val strs = new Array[String](10) //定長數組 長度為10 初始化值為nullval str = Array("hello", "scala") //長度為2的字符串數組 類型推斷 如果已有初始值 就不需要newstr(0) = "Good"//Array("Good","scala") 數組訪問是通過()
變長數組:

/*** 變長數組*/var buffer = ArrayBuffer[Int]() //new ArrayBuffer[Int]() 空數組bufferbuffer += 1 //尾端添加元素1buffer +=(2, 3, 4, 5) //尾端添加元素 2 3 4 5buffer ++= Array(1, 2, 3, 4) //追加集合buffer.trimEnd(5) //移除最后5元素//在數組尾端操作元素是高效的buffer.insert(2, 9) //將元素插入 (2)的位置buffer.insert(2, 7, 8, 0) //將7,8,0元素插入 (2)的位置buffer.remove(2) //移除buffer(2)buffer.remove(2, 3) //移除buffer的3個元素,從2開始計算buffer.toArray //轉換成定長數組buffer.toArray.toBuffer //將定長數組轉換成變長數組

遍歷數組:

//遍歷數組for (i <- 0 until buffer.length) println(i + "==" + buffer(i))//沒隔兩個元素打印一次for (i <- 0 until(buffer.length, 2)) println(i + "==" + buffer(i))//倒序訪問for (i <- (0 until buffer.length).reverse) println(i + "==" + buffer(i))//java 正常for循環for (elem <- buffer)println(elem)數組轉換:

val result = for (elem <- buffer) yield 2 * elem //將原buffer每個元素乘以2 返回一個新的ArrayBuffer將數組 得到數組中的所有偶數(3個方法 結果一樣)
<span style="font-family:Comic Sans MS;font-size:14px;"> for (elem <- buffer if elem % 2 == 0) yield 2 * elembuffer.filter(_ % 2 == 0).map(2 * _)buffer.filter {_ % 2 == 0} map {2 * _}</span> //給定一個buffer數組,移除第一個負數之外的所有負數var first = truevar indexes = for (i <- 0 until buffer.length if first || buffer(i) > 0) yield {if (buffer(i) < 0) first = false; i}//將大于0的數字排列到前面去for (j <- 0 until (indexes.length)) buffer(j) = buffer(indexes(j))buffer.trimEnd(buffer.length - indexes.length)常用算法: //求和Array(1, 7, 8, 9).sum //對于ArrayBuffer 同樣適用ArrayBuffer("java", "scala", "python", "golang", "c/c++", "R").maxArray(1, 7, 8, 9).sorted //按照自然順序排序Array(1, 7, 8, 9).sortWith(_>_) //按照從大到小排序Sorting.quickSort(Array(1, 7, 8, 9)) //只能操作數組 不能對buffer排序Array(1, 7, 8, 9).mkString("(",",",")") //顯示數組,可以直接使用print打印buffer.count(_>0) //返回所有大于0的計數



轉載于:https://www.cnblogs.com/re-myself/p/5532488.html

總結

以上是生活随笔為你收集整理的scala学习之数组操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。