Scala学習のマッピング(Map)

2078 ワード

一、マッピングの重点内容:
1.マッピングでは、前の値をキー、後の値を値と呼ぶ
2.マッピングは対偶の集合であり、2つの値からなり、必ずしも同じタイプではない.
3.キークエリでは、マッピングにキーが含まれていない場合、例外が放出されます.
3.関数は通常計算に使用され、マッピングはクエリーに使用されます.
二、使い方
1、可変マッピングを作成する:
Map("A" -> 1)
// 
HashMap("A" -> 1)

2、可変マッピングの作成
//   mutable   Map HasMap
import scala.collection.mutable.Map
Map("A" -> 1)
// 
import scala.collection.mutable.HashMap
HashMap("A" -> 1)

3、空マッピングの作成
//1.    new   
//2.         
val scores = new scala.collection.mutable.HashMap[String, Int]

説明:可変Mapは特質であり、インスタンス化できない(すなわちnewを使用してオブジェクトを作成できない)
4、マッピングの実際の使い方を作成する
val capital = Map("China" -> "beijing", "America" -> "Washington", "France" -> "Paris")
val americaCapital = captial("America")
//            Washington

前述したように、キークエリを介してキーがマッピングに存在しない場合、次のように例外が放出されます.
val japanCapital = capital("Japan")
//      

したがって、containsメソッドを使用して、キーが存在するかどうかを確認することができます.次のようにします.
val japanCapital = if(capital.contains("Japan")) capital("Japan") else ""

またはgetOrElseメソッドを使用して、次のようにします.
val japanCapital = capital.getOrElse("Japan","")

5、可変マッピングの方法:
import scala.collection.mutable.Map
val scores = Map("Alice" -> 1)
//  Alice     
scores("Alice") = 2
//       
scores("Bob") = 3
//    Map           Map  
val newScores = Map("Fred" -> 4)
scores += newScores
// 
scores += ("Fred" -> 4)
//       
scores -= "Alice"

6、反復:
for((k,v)<-マッピング)処理k,v
//    
val myMap = Map("A" -> 1, "B" -> 2, "C" -> 3)
for((k,v) <- myMap) println(k+" "+v)
//    
for(k <- myMap.keySet) println(k)
//    
for(v <- myMap.values) println(v)
//    
for((k,v) <- myMap) yield (v,k)