zoukankan      html  css  js  c++  java
  • Scala Map与Tuple

    创建Map

    // 创建一个不可变的Map

    val ages = Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23)

    ages("Leo") = 31

    // 创建一个可变的Map

    val ages = scala.collection.mutable.Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23)

    ages("Leo") = 31

    // 使用另外一种方式定义Map元素

    val ages = Map(("Leo", 30), ("Jen", 25), ("Jack", 23))

    // 创建一个空的HashMap

    val ages = new scala.collection.mutable.HashMap[String, Int]

    访问Map的元素

    // 获取指定key对应的value,如果key不存在,会报错

    val leoAge = ages("Leo")

    val leoAge = ages("leo")

    // 使用contains函数检查key是否存在

    val leoAge = if (ages.contains("leo")) ages("leo") else 0

    // getOrElse函数

    val leoAge = ages.getOrElse("leo", 0)

    修改Map的元素

    // 更新Map的元素

    ages("Leo") = 31

    // 增加多个元素

    ages += ("Mike" -> 35, "Tom" -> 40)

    // 移除元素

    ages -= "Mike"

    // 更新不可变的map

    val ages2 = ages + ("Mike" -> 36, "Tom" -> 40)

    // 移除不可变map的元素

    val ages3 = ages - "Tom"

    遍历Map

    // 遍历mapentrySet

    for ((key, value) <- ages) println(key + " " + value)

    // 遍历mapkey

    for (key <- ages.keySet) println(key)

    // 遍历mapvalue

    for (value <- ages.values) println(value)

    // 生成新map,反转keyvalue

    for ((key, value) <- ages) yield (value, key)

    SortedMapLinkedHashMap

    // SortedMap可以自动对Mapkey的排序

    val ages = scala.collection.immutable.SortedMap("leo" -> 30, "alice" -> 15, "jen" -> 25)

    // LinkedHashMap可以记住插入entry的顺序

    val ages = new scala.collection.mutable.LinkedHashMap[String, Int]

    ages("leo") = 30

    ages("alice") = 15

    ages("jen") = 25

    Map的元素类型—Tuple

    // 简单Tuple

    val t = ("leo", 30)

    // 访问Tuple

    t._1

    // zip操作

    val names = Array("leo", "jack", "mike")

    val ages = Array(30, 24, 26)

    val nameAges = names.zip(ages)

    for ((name, age) <- nameAges) println(name + ": " + age)

  • 相关阅读:
    WPF-WPF的内部世界-Binding
    WPF-XMAL-布局和控件-布局(一)
    SQL Server的简单使用
    redis的简单使用
    JWT
    C# 面试
    dapper的使用
    .NET发展史
    idea Jrebel升级后看不到且无法重新安装Jrebel
    laydate时间点击后马上消失
  • 原文地址:https://www.cnblogs.com/YuanWeiBlogger/p/11432367.html
Copyright © 2011-2022 走看看