基礎內容html
1. 數組定義數組
定長、可變數組的定義;元素添加,刪除,排序,求和等經常使用運算app
import scala.collection.mutable.ArrayBuffer import scala.math.BigDecimal.RoundingMode /** * @author xwolf * @date 2017-04-09 18:23 * @since 1.8 */ object Collection { def main(arg:Array[String]): Unit ={ multipleArray() } /** * 數組建立 */ private def create() :Unit={ val a = new Array[String](1) a(0)="Hello" println(a.toBuffer) val ab =ArrayBuffer(3) ab+=1 //append 可接受多個參數,在數組末尾追加元素 ab.append(12,3,3) ab ++=Array(5,12) println("insert after 1: "+ ab) ab += (3,5) println("insert after 2: "+ ab) // 在指定索引 添加元素 ab.insert(2,123,32) println("remove before:"+ab) //移除當前索引的元素 ab.remove(1) println("remove after 1:"+ ab) //移除當前索引開始的元素的個數,超出會拋出下標越界異常 ab.remove(4,3) println(ab) val ary = ab.toArray val arrayB = ary.toBuffer println(arrayB) } /** * 排序 */ def sort(){ val ary =ArrayBuffer[Int]() ary ++=Array(1,123,3,123,4,12,10) println(ary) val a = ary.sortBy(x=>x) println(a) //自定義排序 val c= ary.sortWith((a,b)=>a.compareTo(b)<0) println(c) val d= ary.sortWith((a,b)=>a.compareTo(b)>0) val f = ary.sorted println(f) println(d) //去重 過濾 map val e = d.distinct.filter(_.%(2)!=0).map(_.+(2)) println(e) } /** * 經常使用運算 */ def calculator():Unit={ val ary =Array(12,2,12,33,2,123,1) println(ary.max)//最大 println(ary.min)//最小值 println(ary.sum)//求和 println(average(ary))//求平均值 } /** * 求數組的平均值 四捨五入保留兩位小數 * @param ary * @return */ private def average(ary:Array[Int]):BigDecimal={ val len = ary.length val sum = ary.sum (BigDecimal.valueOf(sum)./(BigDecimal.valueOf(len))).setScale(2,RoundingMode.UP) } /** * 多維數組 */ def multipleArray(): Unit ={ //多維數組定義 val mary = new Array[Array[Int]](2) mary(0)=Array(1,2,3,1,4) mary(1)=Array(2,1,4) for(ary<-mary){ println(ary.toBuffer) } //定義 2行 3列 數組 val nary =Array.ofDim[Int](2,3) nary(0)(0)=12 nary(0)(1)=13 nary(0)(2)=14 nary(1)(0)=22 nary(1)(1)=23 nary(1)(2)=24 println(nary.toBuffer) for(i<-0 until nary.length){ println(nary(i).toBuffer) } } }
scala 數組操做中使用了隱式轉化.scala
更多資料參考:
htm
scala 數組blog