新增新的键值对 和 删除键

增加新的键值对

package main

object Test {

  def main(args: Array[String]): Unit = {

    val map = Map(1 -> "one", 2 -> "two", 3 -> "three", 4 -> "four", 5 -> "five");
    println(map.getClass.getName); //scala.collection.immutable.HashMap$HashTrieMap
    println(map);
    //Map(5 -> five, 1 -> one, 2 -> two, 3 -> three, 4 -> four)


    /**
      * + 操作符可以增加一个或多个键值对,返回新的 Map对象。
      **/
    println( map + (6 -> "S6") );
    //Map(5 -> five, 1 -> one, 6 -> S6, 2 -> two, 3 -> three, 4 -> four)

    println( map + (7 -> "SS7", 8 -> "SS8", 9 -> "SS9") );
    //Map(5 -> five, 1 -> one, 9 -> SS9, 2 -> two, 7 -> SS7, 3 -> three, 8 -> SS8, 4 -> four)


    /**
      * ++ 操作符可以增加一个Map键值对的集合,实现批量增加。
      * 如果键已经存在于Map对象中,则增加这个键值对相当于更新操作。
      **/
    println(
      map ++ Seq(5 -> "AK5", 10 -> "AK10", 20 -> "AK20", 30 -> "AK30")
    );
    //Map(5 -> AK5, 10 -> AK10, 20 -> AK20, 1 -> one, 2 -> two, 3 -> three, 30 -> AK30, 4 -> four)

  }
}

 不可变集合的Map 对应 可变集合的Map的操作符:+ 对应 +=、++ 对应 ++= 

 

 删除键 

package main

object Test {

  def main(args: Array[String]): Unit = {

    val map = Map(1 -> "one", 2 -> "two", 3 -> "three", 4 -> "four", 5 -> "five");
    println(map.getClass.getName); //scala.collection.immutable.HashMap$HashTrieMap
    println(map);
    //Map(5 -> five, 1 -> one, 2 -> two, 3 -> three, 4 -> four)

    
    /**
      * - 操作符可以删除一个或多个键值对,返回新的 Map对象。
      **/
    println( map - (5) );
    //Map(1 -> one, 2 -> two, 3 -> three, 4 -> four)

    println( map - (6) );
    //Map(5 -> five, 1 -> one, 2 -> two, 3 -> three, 4 -> four)

    println( map - (5, 1) );
    //Map(2 -> two, 3 -> three, 4 -> four)

    println( map - (5, 10) );
    //Map(1 -> one, 2 -> two, 3 -> three, 4 -> four)

    println( map - (10, 20) );
    //Map(5 -> five, 1 -> one, 2 -> two, 3 -> three, 4 -> four)



    /**
      * -- 删除一个Map键值对的集合,实现批量删除。
      **/
    println( map -- Seq(5, 1) );
    //Map(2 -> two, 3 -> three, 4 -> four)

    println( map -- Seq(5, 10) );
    //Map(1 -> one, 2 -> two, 3 -> three, 4 -> four)

    println( map -- Seq(10, 20) );
    //Map(5 -> five, 1 -> one, 2 -> two, 3 -> three, 4 -> four)
  }
}

 

posted @ 2019-07-23 02:34  茗::流  阅读(278)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。