Create a Map
// create an immutable Map
val ages = Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23)
ages("Leo") = 31
// create a variable Map
val ages = scala.collection.mutable.Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23)
ages("Leo") = 31
// use another way to define Map elements
val ages = Map(("Leo", 30), ("Jen", 25), ("Jack", 23))
// Create an empty HashMap
val ages = new scala.collection.mutable.HashMap[String, Int]
Access Map elements
// Gets the key corresponding to the value , if the key does not exist, an error
val leoAge = ages("Leo")
val leoAge = ages("leo")
// use contains a function check key if there is
val leoAge = if (ages.contains("leo")) ages("leo") else 0
// getOrElse function
val leoAge = ages.getOrElse("leo", 0)
Modify Map elements
// Update Map elements
ages("Leo") = 31
// add multiple elements
ages += ("Mike" -> 35, "Tom" -> 40)
// remove elements
ages -= "Mike"
// update immutable map
val ages2 = ages + ("Mike" -> 36, "Tom" -> 40)
// remove immutable map elements
val ages3 = ages - "Tom"
Traversal Map
// traverse the map of entrySet
for ((key, value) <- ages) println(key + " " + value)
// traverse the map of key
for (key <- ages.keySet) println(key)
// traverse the map of value
for (value <- ages.values) println(value)
// create a new the Map , reversing key and value
for ((key, value) <- ages) yield (value, key)
SortedMap和LinkedHashMap
// SortedMap can automatically Map of key sort of
val ages = scala.collection.immutable.SortedMap("leo" -> 30, "alice" -> 15, "jen" -> 25)
// LinkedHashMap can remember inserted entry order
val ages = new scala.collection.mutable.LinkedHashMap[String, Int]
ages("leo") = 30
ages("alice") = 15
ages("jen") = 25
Map element type - Tuple
// simple Tuple
val t = ("leo", 30)
// access Tuple
t._1
// zip operation
val names = Array("leo", "jack", "mike")
val ages = Array(30, 24, 26)
val nameAges = names.zip(ages)
for ((name, age) <- nameAges) println(name + ": " + age)