Scala集合Map

在scala中Map分为可变长(mutable)和不可变长(immutable)

/**
      * 不可变长map 长度一旦初始化,就不能在进行更改
      */
    // 通过箭头的方式创建map
    val map = Map("name" -> "leo", "age" -> 16, "sex" -> "男")

    // 通过对偶元组的方式创建map
    val map1 = Map(("name", "jack"), ("age", 16), ("sex", "女"))

    // 通过两者混搭创建map
    val map3 = Map("name" -> "tuoni", ("name", "hengr"))

    // ++ 操作合并两个map 原map不变
    val newmap = map ++ map1

    println(map + "," + map1 + "," + map3 + "," + newmap)
 /**
      * 不可变长Map映射,长度,值一旦初始化后不能再次被改变
      */
    val map4 = mutable.Map("a" -> "A")
    map4.put("b", "B")
    map4 += ("c" -> "C", "d" -> "D")
    map4 ++= mutable.Map("hah" -> "HAH", ("a", "b"))
    // 移除Map映射,mutable 包下
    println(map4)
    map4 -= ("b", "B")
    map4 --= Set("a", "b")
    map4.remove("c")
    println(map4)

    // Map(b -> B, hah -> HAH, d -> D, a -> b, c -> C)
    // Map(hah -> HAH, d -> D)
/**
      * map映射常用操作方法
      */
    // contains 方法判断一个key 是否存在,存在返回true,否则返回false
    val map = mutable.Map("b" -> "B", "hah" -> "HAH", "d" -> "D", "a" -> "b", "c" -> "C")
    println(map.contains("b"))

    //获取key对应的值,注意如果通过 Map(“key”)获取对应的值应该进行key是否存在判断
    if (map.contains("e")) {
      println(map("e"))
    }
    // 映射的get 方法也是用来获取key 对应的值,但是这个方法返回的是一个option对象,这个option
    // 对象有两个子类,如果有key 则返回Some(some对象中封装了key对应的值,可以通过some的get
    // 方法获取该值)对象。
    // 没有key则返回None对象

    val value: Option[String] = map.get("a")
    //isEmpty方法可以用来判断是Some对象还是None
    if (!value.isEmpty) {
      println(value)
    } else {
      println(value)
    }
  // 如果key 存在则返回对应的值,如果key不存在则返回给定的值
  val v1 = map.getOrElse("f","EEE")
  println(v1)
/**
      * LinkedHashMap 插入有序,会按照我们的插入顺序排序,因为底层是链表结构
      */
    val map5 = mutable.LinkedHashMap[String, String]()
    map5 += ("d" -> "D")
    map5 += (("a", "A"))
    map5("c") = "C"
    map5("b") = "B"
    println(map5)

    /**
      * SortedMap 可以自动对Map的key进行排序
      */
    val map6 = mutable.SortedMap[String, String]()
    map6("c") = "C"
    map6("b") = "B"
    map6("a") = "A"
    println(map6)

原文地址:https://www.cnblogs.com/itboys/p/10626386.html

时间: 2024-10-28 10:22:00

Scala集合Map的相关文章

scala集合类型与java的转换

scala集合与java集合类型相互转换: http://www.scala-lang.org/api/current/index.html#scala.collection.JavaConverters$ 您可以通过JavaConverters package轻松地在Java和Scala的集合类型之间转换.它用asScala 装饰常用的Java集合以和用asJava 方法装饰Scala集合.    import scala.collection.JavaConverters._    val 

Scala集合笔记

Scala的集合框架类比Java提供了更多的一些方便的api,使得使用scala编程时代码变得非常精简,尤其是在Spark中,很多功能都是由scala的这些api构成的,所以,了解这些方法的使用,将更加有助于我们学习Scala和Spark: List,Map,Set的一些api的用法如下:  Java代码   /** * Scala 集合测试 */ def collectionTest(): Unit ={ val map =Map("red"->"红色",&

再谈Scala集合

集合!集合!一个现代语言平台上的程序员每天代码里用的最多的大概就是该语言上的集合类了,Scala的集合丰富而强大,至今无出其右者,所以这次再回过头再梳理一下. 本文原文出处:  还是先上张图吧,这是我找到的最好的一个关于Scala集合的图了,出自:http://lkumarjain.blogspot.co.id/2015/01/scala-collection-framework.html : 一致的构建风格 在Scala里我们使用一致的简洁的语法实例化一个集合,不管你使用的是一个Trait还是

Scala集合类型详解

Scala集合 Scala提供了一套很好的集合实现,提供了一些集合类型的抽象. Scala 集合分为可变的和不可变的集合. 可变集合可以在适当的地方被更新或扩展.这意味着你可以修改,添加,移除一个集合的元素.而不可变集合类永远不会改变.不过,你仍然可以模拟添加,移除或更新操作.但是这些操作将在每一种情况下都返回一个新的集合,同时使原来的集合不发生改变. 集合中基本结构: 几种常用集合类型示例: // 定义整型 List   val x = List(1, 2, 3, 4)     // 定义 S

Scala集合学习总结

遍历集合可以使用迭代器iterator的那套迭代方式.Seq是一个有先后次序的序列,比如数组或列表.IndexedSeq可以通过下标进行任意元素的访问.例如ArrrayBuffer. Set是一组没有先后次序的值,在SortedSet中,元素以某种排过序的顺序被访问. Map是一组(键,值)对偶,SortedMap按照键的顺序访问实体 Scala集合有三个基本操作: head 返回集合第一个元素 tail 返回一个集合,包含除了第一元素之外的其他元素 isEmpty 在集合为空时返回true 可

Scala集合(一)

Scala集合的主要特质 Iterator,用来访问集合中所有元素 val coll = ... // 某种Iterable val iter = col.iterator while(iter.hasNext) iter.next() Seq是一个有先后次序的值得序列,比如数组或列表.IndexSeq允许我们通过整型的下标快速访问任意元素,如ArrayBuffer是带下标的.Set是一组没有先后次序的值,在SortedSet中,元素以某种排过序的顺序被访问.Map是一组(K,V)对偶,Sort

Scala集合(二)

将函数映射到集合 map方法 val names = List("Peter" , "Paul", "Mary") names.map(_.toUpperCase) // 等同于 for(n <- names) yield n.toUpperCase flatMap方法,如果函数产出一个集合,又想将所有值串联在一起 def ulcase(s:String) = Vector(s.toUpperCase(), s.toLowerCase())

day19 集合MAp

Day 19 Map 一,虽然在Collection的下边,但是他在API里边确是单独的一个类; 二,Map 在存储的时候和collection 不一样: Collection只能存储一个对象(也称为单列集合); Map 是键值映射的,一一对应.(也称为双列集合); 三,map 接口中的方法: 常用的: 1,put (K,V)  将键值对存储到集合;  如果存储重复键,原来的键会被覆盖. 2,get(K)  传递键,返回这个键所对应的值(区分大小写);如果没有返回null 3,接口判断方法   

java018.双列集合Map

day18双列集合MapMap接口和Collection接口的区别: * Map是双列的,Collection是单列的 * Map的键唯一,Collection的子体系Set是唯一的,List体系可以存储重复值 * Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效 * a:添加功能  * V put(K key,V value):添加元素.   * 如果键是第一次存储,就直接存储元素,返回null   * 如果键不是第一次存在,就用值把以前的值替换掉,