Scala Map and Tuple

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)

 

SortedMapLinkedHashMap

// 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)

 

Guess you like

Origin www.cnblogs.com/YuanWeiBlogger/p/11432367.html