在jvm中,scala的Array以java數(shù)組方式實現(xiàn); Int, Double 或其他與java中基本類型對應的數(shù)組都是基本類型數(shù)組; 例如: Array(1,2,3) 在jvm中就是 int[] ;
=>在scala中, 數(shù)組分為定長數(shù)組 Array和變成數(shù)組 ArrayBuffer ;
變長數(shù)組
scala中的 ArrayBuffer 的數(shù)據(jù)結(jié)構(gòu)等效與 java中的 ArrayList;
val ?arr = ArrayBuffer[Int]()
=>需要導包 ? import ?scala.collection.mutable.ArrayBuffer
=>可變數(shù)組和定長數(shù)組相互轉(zhuǎn)化: toArray ? 與 ? ?toBuffer
for ( element <- arr ){ }
=>數(shù)組遍歷有兩種方式: 一種是基于下標進行遍歷, 一種就類型java中的高級for循環(huán);
=>對于數(shù)組來說,進行數(shù)據(jù)的移動是很消耗性能的,比如從一個整數(shù)的數(shù)組緩沖移除所有的負數(shù),最好的方式就是采用 yield方式遍歷 或者 使用filter/map 的方式, 就是生成新數(shù)組的方式, 要高效很多;