A:関連する操作のアレイ
固定長配列
ヴァル配列=配列[文字列]( ""、 "B"、 "C")//は、 直接配列の内容を初期化
( "|" array.mkString()のprintln )
ヴァル配列=新しいArray [文字列] (2)//新しい長さ2のデータが割り当て方法更新することによって行われる
array.update(0、 "0")を
array.update(1、」1" )
のprintln(配列.mkString( "|"))
可変長配列:バッファの配列
scala.collection.mutable.ArrayBufferインポート
ヴァルArrayBuffer新しい新しいデータ= [文字列]();
データ= .-(」3" )//単一の要素の削除操作
データ.- =( "3"、 "2")// 単一削除操作子
データ。+ =( "1" )// 単一素子駆動追加
データを。+ =( "2" 、 "3"、 "4")// 動作する複数の要素
のデータを。++ =(配列( "5"、 "6"、 "7"))//配列操作変数定数配列
変数配列の可変動作のデータ。++ =(データ)//配列
data.trimEnd(2)//は、最後に削除します五行
data.remove(2)第2の素子ビットの第2セットを削除//
data.remove(2,3)//第2の3つの要素の除去を開始
ヴァル配列= data.toArray [文字列] / /配列に
アレイおよびアレイ・バッファを介して
ヴァル配列=配列[文字列]( ""、 "B"、 "C"、 "D")// 配列に
各要素を介して- (配列I <)//のため
のprintln(I)
以下のための(I < - 0 Array.lengthとなるまで )// 反復長
のprintln(array.apply(I))
用(I < - 0まで( Array.lengthと、2))// 二つの要素それぞれのジャンプ
のprintln(array.apply(I))
=配列arrayヴァル[文字列]( "A"、 "B"、 "C"、 "D"、 "E"、 "F"、 "H")
のための(I < - (0までBE Array.lengthと).reverse )//逆が、あまりこの方法のより迅速なIDEを求められたとき
のprintln(array.apply(I))
変換アレイ
=配列arrayヴァル[文字列]( "A"、 "B"、 "C"、 "D"、 "E"、 "F"、 "H")
のVal arrayb =ため(I < - (0までのBE Array.lengthと).reverse)収率はarray.apply(I) +「」// オブジェクトバッファ配列バッファのアレイが収率オブジェクトされた後、アレイは、オブジェクト収率後にオブジェクトの配列であります
ヴァル配列=配列[文字列]( ""、 "B"、 "C"、 "D"、 "E"、 "F"、 "H")
のVal arrayB = array.map {X => X + "" } .filter {X => x.equals( "AA")} //链式编程方法
一般的な方法
ヴァル配列=配列[INT]( 1,2,3,4).SUM // 加算
ヴァル配列1 =配列[INT]( 1,2,3,4).MAX // 最大
ヴァル配列2 =配列[のInt ](1,2,3,4)
array2.sortWith((A、B)=> A> B).mkString( "|")//ソート
scaladoc
ArrayBuffer配列2 =ヴァル[INT](2,2,3,4)が
array2.append(6)//新しい要素を追加
array2.appendAll(配列2)は//新しいアレイの追加
array2.countを(X => {(IF X = = 6)真そうでない場合はfalse}) // 数を満たす計算値
配列2 + =(7)//追加した新しい要素。
valの最大= array2.max //最大配列
のprintln(array2.mkString( "|") )
ヴァルarrayBuffer = array2.padTo(15、1234 )// 固定長の配列への配列は、十分な第二の引数によって満たされていない
のprintln(「|」)arrayBuffer.mkString( )
多次元配列
ヴァル配列= Array.ofDim [文字列](2,4)//两行四列
アレイ(1)〜(3)= "1234"。
println(array.mkString( "|"))
Javaのとの相互運用性
輸入scala.collection.JavaConversions._ //これは、使用するJavaのScalaの方法を変換したい
Scalaの変換Javaクラスの大規模なコレクションが含まれている//
II:マッピングとタプル
構造マッピング
マッピング=マップVAL( "AA" //> 6 - > 4 "BB" - - > 5、 "CC") このメソッドは、固定長のマップのセットを生成
、ヴァルMAP1 = scala.collection.mutable.Map [文字列INT()//この方法は、可変長のセットのマップを生成
MAP1 + =(( "DD" ,. 7))。
のprintln(map1.mkString( "|"))
値マップを取得します。
マッピング=マップVAL( "AA" - > 4、 "BB" - > 5、 "cc"が- > 6)// この方法は、固定長のマップのセット生成
のprintln(map.getOrElse( "DD"、 "100" ))// DDの値を取得し、そうでない場合は100を返します
マップ内のアップデート
val map1 = scala.collection.mutable.HashMap("aa"->4,"bb"->5,"cc"->6) //此方法生成一个定长的map集合
map1.+=(("dd"->7)) //不可变map这个方法是返回新的map
println(map1.mkString("|"))
map1.-=("bb") //删除key
println(map1.mkString("|"))
map1.update("aa", 100) //不可变map没有这个方法
println(map1.mkString("|"))
迭代映射
val map1 = scala.collection.mutable.HashMap("aa"->4,"bb"->5,"cc"->6)
for((key,value)<-map1){
println(key +"|" + value)
}
println()
for(key<-map1.keySet){
println(map1.apply(key))
}
println()
for((key,value)<-map1) yield(value,key) //反转map结构,key,value相互转换
已排序映射
//生成不可变的的排序的map,如果必须要可变的话,建议用treemap
val map1 = scala.collection.immutable.SortedMap("mm"->4,"aa"->5,"cc"->6)
for((key,value)<-map1){
println(key +"|" + value)
}
println()
//生成可变的有顺序的map
val map2 = scala.collection.mutable.LinkedHashMap("mm"->4,"aa"->5,"cc"->6)
for((key,value)<-map2){
println(key +"|" + value)
}
与Java互操作
//将一而终类型的变量转换为另一种类型的变量,这就是JavaConversions魅力
//下面的例子就是将Properties转换为Map类型
import scala.collection.JavaConversions.propertiesAsScalaMap
val map:scala.collection.Map[String,String] = System.getProperties
println(map.toString())
//可用的还有
import scala.collection.JavaConversions.mapAsScalaMap
import scala.collection.JavaConversions.mapAsScalaConcurrentMap
元组
//元组每个元素都可以是不同的类型
val tt = ("aa",11,2.0f,5l)
println(tt._1) //可以用_1,_2,_3,_4访问
拉链
val aa = Array(1,2,3,4)
val bb = Array(5,6,7,8)
val cc = aa.zip(bb)//拉链操作
println(cc.mkString("|"))