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)

    println( map.contains(1) ); //true
    println( map.contains(9) ); //false
  }
}

 

根据键更新它的值

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)


println( map.updated(5, "F5") ); //Map(5 -> F5, 1 -> one, 2 -> two, 3 -> three, 4 -> four) println( map.updated(9, "X9") ); //Map(5 -> five, 1 -> one, 9 -> X9, 2 -> two, 3 -> three, 4 -> four) } }

 使用 updated()方法会更新键值对,并返回一个新的Map对象。

如果这个键在原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)

    
    for ((k, v) <- map) {
      println(k + "==" + v);
    }
    /**
      * 5==five
      * 1==one
      * 2==two
      * 3==three
      * 4==four
      **/

    
    map.foreach(x => {
      println(x._1 + " == " + x._2);
    });
    /**
      * 5 == five
      * 1 == one
      * 2 == two
      * 3 == three
      * 4 == four
      **/
  }
}

 

得到键的集合

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)


    val keys = map.keys;
    println(keys.getClass.getName);//scala.collection.immutable.MapLike$ImmutableDefaultKeySet
    println(keys);
    //Set(5, 1, 2, 3, 4)

    val keySet = map.keySet;
    println(keySet.getClass.getName);//scala.collection.immutable.MapLike$ImmutableDefaultKeySet
    println(keySet);
    //Set(5, 1, 2, 3, 4)
  }
}

 

得到值的集合

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)


    val values = map.values;
    println(values.getClass.getName); //scala.collection.MapLike$DefaultValuesIterable
    println(values);
    //MapLike.DefaultValuesIterable(five, one, two, three, four)
    println(values.toList);
    //List(five, one, two, three, four)
    

    val valuesIterator = map.valuesIterator;
    println(valuesIterator.getClass.getName); //scala.collection.MapLike$$anon$2
    println(valuesIterator);
    //<iterator>
    println(valuesIterator.toList);
    //List(five, one, two, three, four)
  }
}

 

转换函数 

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)


    val filter = map.filter( x => {
      x._1 > 3
    });
    println(filter.getClass.getName); //scala.collection.immutable.HashMap$HashTrieMap
    println(filter);
    //Map(5 -> five, 4 -> four)


    val filterKeys = map.filterKeys( x => x < 3 );
    println(filterKeys.getClass.getName); //scala.collection.immutable.MapLike$$anon$1
    println(filterKeys);
    //Map(1 -> one, 2 -> two)


    val mapValues = map.mapValues( x => x.toUpperCase() );
    println(mapValues.getClass.getName); //scala.collection.immutable.MapLike$$anon$2
    println(mapValues);
    //Map(5 -> FIVE, 1 -> ONE, 2 -> TWO, 3 -> THREE, 4 -> FOUR)


    val mapValuesFilter = map.mapValues( x => x.length > 3 );
    println(mapValuesFilter.getClass.getName); //scala.collection.immutable.MapLike$$anon$2
    println(mapValuesFilter);
    //Map(5 -> true, 1 -> false, 2 -> false, 3 -> true, 4 -> true)


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

 

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