// 初始化長度爲10的數組 val array = new Array[Int](10) // 初始化建立含有hello與Scala的數組 val s = Array("hello","scala")
Scala中建立長度可變的數組,相似與java中的ArrayList同樣Scala提供了ArrayBuffer,下面是ArrayBuffer的用法: // 建立集合等同於下面的new ArrayBuffer[Int]() val b = ArrayBuffer[Int]() new ArrayBuffer[Int]() // 集合添加元素相似與java中的list.add()屢次調用添加函數 b += (1, 2, 3, 4, 5, 6) // 能夠追加新的集合元素相似java中的list.addAll() b ++=Array(7,8,9,10) // 移除前//5個元素 b.trimStart(5) /** * 數組尾部刪除或者添加元素是很是快,可是中間 * 插入元素或者移除元素,操做較慢 */ val c = new ArrayBuffer[Int]() c+=(1,2,3) // 在索引2處插入元素6 c.insert(2,6)// ArrayBuffer(1, 2, 6, 3) // 刪除索引爲2元素 c.remove(2) // 刪除索引1後一個元素 c.remove(1,1) 有時候建立元素,不知道存儲多少元素能夠建立數組緩存ArrayBuffer,而後調用toArray方法將緩衝區間轉爲Array(相似於java中StringBuffer.toString方法)
val a = ArrayBuffer[Int]() a+=(1,2,3,4,5,6) //遍歷數組(變量i取值從0到a.length-1) for(i<- 0 until a.length) println(a(i)) println(a(i) // 遍歷偶數下標索引元素 for(i<- 0 until (a.length,2)) println(a(i)) // 倒着遍歷索引 for(i<- (0 until a.length).reverse) println(a(i)) // yield元素填充 val result =for (e <- list) yield e *2 // 數組轉換 val list = Array(1, 2, 3, 4) // yield元素填充 val result = for (e <- list) yield e * 2 println(result.toBuffer) // 捨棄偶數元素 val res = for (e <- list if e % 2 == 0) yield e println(res.toBuffer) // 也能夠使用函數式編程使用filter和Map val req = a.filter(_ % 2 == 0).map(2 * _) }
Scala中有計算求和和排序 val list = Array(1, 2, 3, 4) // 求和,求數組最大值,排序,而排序並不會影響原有的數組 println(list.sum, list.max,list.sorted.toBuffer)
方法 | 方法描述 |
---|---|
def append(elems:A*):Unit | 方法接受多個類型爲A的元素,例如b.append(1,2)將對b追加2個元素 |
def count(p:(A)=>Boolean):Int | 方法接受一個布爾值表達式,例如a.count(_>0)將會統計多個正數 |
方法demojava
val list = Array(8, 5, 1, 2, 3, 4) val bs = list.sorted.toBuffer bs.append(1,2) println(bs) // 統計集合大於4的元素個數 println( bs.count(_ > 4))