Scala学習ノート--Map,Tuple,Zipまとめ
1995 ワード
補足定義:マッピング:キー/値対偶の集合Scalaでは、マッピングは対偶の集合であり、対偶は簡単に言えば2つの値からなるグループであり、この2つの値は必ずしも同じタイプではない.例えば、(「Alice」,10)メタグループ(tuple)は異なるタイプの集約に値する
Map(コンストラクションマッピング)[Alice]->10"->10"->は、対偶->を作成するために使用されます("Alice",10)/値がval scores=Map("Alice"->10,"Bob"->3,"Cindy"->8)/>scores 1:scala.collection.immutable.Map[String,Int]=Map(Alice->10,Bob->3,Cindy->8)/変化可能なMap[String,Int]を構築し、その値は変化可能なval scores 2=scalaである.collection.mutable.Map(“Alice” -> 10,”Bob” -> 3,”Cindy” -> 8)
例:scores 2.keySet//> res3: scala.collection.Set[String]=Set(Bob,Alice,Cindy)for((k,v)<-scores 2)println(k+":"+v)/>Bob:10//|Alice:10//|Cindy:8//上記の方法でK,Vの値を取得できます.
Tuple(タプル)/タプルval t=(1,3.14,"Fred")/>t:(Int,Double,String)=(1,3.14,Fred)/を作成するには_1,_2,_3メソッドそのグループメタ注意:メタグループの下付き文字は1から始まり、0からval second=t._ではありません.2//>second:Double=3.14//モードマッチングを使用して、val(first 1,second 1,third 1)=t//>first1:Int=1///>>second 1:Double=3.14//>>third 1:String=Fred//一部の部品が不要であれば使用できます.val (first,second,_) = t//メタグループは、関数が1つ以上の値を返す必要がある場合に使用できます.1対の文字列を返します.“Scala Spark”.partition(_.isUpper)//> res5: (String, String) = (SS,cala park)
Zip(ファスナー)/複数の値を1つにまとめることで、val symbols=Array(「<」-「,」>)/>symbols:Array[String]=Array(<,-,>)val counts=Array(2,10,2)/>counts:Array[Int]=Array(2,10,2)/出力対偶配列val pairs=symbols.zip(counts)//> pairs : Array[(String, Int)] = Array((<,2), (-,10), (>,2)) for((s,n) <- pairs)Console.print(s*n)/印刷<——->>、
Map(コンストラクションマッピング)[Alice]->10"->10"->は、対偶->を作成するために使用されます("Alice",10)/値がval scores=Map("Alice"->10,"Bob"->3,"Cindy"->8)/>scores 1:scala.collection.immutable.Map[String,Int]=Map(Alice->10,Bob->3,Cindy->8)/変化可能なMap[String,Int]を構築し、その値は変化可能なval scores 2=scalaである.collection.mutable.Map(“Alice” -> 10,”Bob” -> 3,”Cindy” -> 8)
1> Map
// "Bob", ; , 0
val bobScore = scores2.getOrElse("Bob",0) //> bobScore : Int = 10
// "Bob" ( scores )
scores2("Bob") = 10
// +=
scores2 += ("Bob" -> 10,"Fred" -> 7)
// -=
scores2 -= "Alice"
2> /
for((k,v) <- ) k v
例:scores 2.keySet//> res3: scala.collection.Set[String]=Set(Bob,Alice,Cindy)for((k,v)<-scores 2)println(k+":"+v)/>Bob:10//|Alice:10//|Cindy:8//上記の方法でK,Vの値を取得できます.
Tuple(タプル)/タプルval t=(1,3.14,"Fred")/>t:(Int,Double,String)=(1,3.14,Fred)/を作成するには_1,_2,_3メソッドそのグループメタ注意:メタグループの下付き文字は1から始まり、0からval second=t._ではありません.2//>second:Double=3.14//モードマッチングを使用して、val(first 1,second 1,third 1)=t//>first1:Int=1///>>second 1:Double=3.14//>>third 1:String=Fred//一部の部品が不要であれば使用できます.val (first,second,_) = t//メタグループは、関数が1つ以上の値を返す必要がある場合に使用できます.1対の文字列を返します.“Scala Spark”.partition(_.isUpper)//> res5: (String, String) = (SS,cala park)
Zip(ファスナー)/複数の値を1つにまとめることで、val symbols=Array(「<」-「,」>)/>symbols:Array[String]=Array(<,-,>)val counts=Array(2,10,2)/>counts:Array[Int]=Array(2,10,2)/出力対偶配列val pairs=symbols.zip(counts)//> pairs : Array[(String, Int)] = Array((<,2), (-,10), (>,2)) for((s,n) <- pairs)Console.print(s*n)/印刷<——->>、