Scala:Map集合的使用

1.声明

当前内容主要用于本人学习和复习,当前内容为使用和测试Map集合

当前内容借鉴:菜鸟教程

Map集合存在两种

  1. 可修改的Map:scala.collection.mutable.Map
  2. 不可修改的Map:scala.Map

基本上和Set集合差不多

2.共同的操作

1.创建Map集合操作

  1. var 变量=Map()
  2. var 变量:Map[k类型,v类型]=Map[k类型,v类型]()
  3. var 变量:Map[k类型,v类型]=Map[k类型,v类型](key->value,.....)
  4. var 变量=Map(key->value,.....)
// 1.创建map
var map: Map[String, Any] = Map();
var map2: Map[String, Any] = Map[String, Any]();
var map3: Map[String, String] = Map[String, String]("name" -> "haha");
var user = Map("name" -> "user", "age" -> 18);

2.添加数据操作:map.+(k->v)map+=(k->v)

 // 2. 添加数据操作
 println(user);
 user.+("email" -> "user@qq.com");
 println(user); // 没有改变
 user = user.+("email" -> "user@qq.com");
 println(user); // 改变了
 user += ("salary" -> 100.0);
 println(user); // 改变了

3.其他的操作

 // 3.判断当前的map集合是否为空和map集合的长度
 println(user.size);
 println(user.isEmpty);
 // 判断是否存在某个key
 println(user.contains("name"));

这个操作和List、Set一致

4.修改和删除操作:修改和添加一样,删除使用(map.-(key)map-=(key)

// 4.修改属性
 user += ("salary" -> 1000.0);
 println(user);

 // 5.删除属性
 user -= ("salary");
 println(user);
 user = user.-("email");
 println(user);

5.获取所有的key和value:map.keysmap.values

// 6.获取所有的key和所有的value
println(user.keys)
println(user.values);
// 7.循环方式输出key和value
println("=========输出key和value==========");
user.foreach(k => println("key-value=" + k)); // 返回结果为元祖
user.foreach(k => println("key=" + k._1 + ",value=" + k._2)); // 由于k是一个元祖,所以可以使用._1(第一个表示key),和._2(表示value)
user.keys.foreach(k => println("key=" + k + ",value=" + user(k) + ",value=" + user.get(k))); // 可以通过变量(key)和变量.get(key)方式获取值

发现map.foreach的时候,迭代的是一个元祖,可以使用元祖的数据来获取key和value

6.集合的操作

// 8.集合的操作
println("=========集合的操作==========");
// 合并集合
println(user);
var admin = Map("name" -> "admin", "email" -> "admin@qq.com");
println(user.++(admin)); // 表示在user集合的里面加入admin集合,所以出现user中的数据被覆盖

// 移除集合中的属性
println(user.--(Set("name", "admin"))); // 注意该操作为Set集合或者List集合

7.更新数据操作:map.update(key,value)

// 9.更新操作
 user.updated("key", "root"); // 无效,返回一个新的map
 user = user.updated("key", "admin"); //没有就直接添加
 user = user.updated("name", "bob"); //有就直接修改
 println(user);

3.可修改的Map集合的操作


import scala.collection.mutable.{ Map => ModifyMap };

/**
 * @description 主要用于测试当前的可修改的Map集合
 * @author hy
 * @date 2020-06-27
 */
object ModifyMapTest {
  var user = ModifyMap("name" -> "user", "age" -> 18);

  //
  def main(args: Array[String]): Unit = {
    user.put("email", "user@qq.com");
    user.+("address" -> "admin's address");
    user += ("salary" -> 999.0);
    println(user); // put和user+=都可以改变map,.+不能改变map,这说明其 部分内容与不可修改的map一致
    user.remove("email");
    println(user); // 删除成功
    //user.updated("key", "admin"); // 无效,和scala中的Map使用方式一致,必须赋值
    //user.updated("name", "bob");
    //println(user);
    // 发现一个不同点就是可修改的Map提供了put和当前的remove方式添加和修改map集合
  }
}

发现可修改的map就是提供了一个put和remove方法来实现修改map集合

4.总结

1.scala中的Map集合的使用方式基本上和java差不多,都是key和value

2.scala中具有可修改和不可修改的Map集合

3.可修改的Map和不可修改的Map区别在于,可修改的Map提供了add和remove方法来修改集合

以上纯属个人见解,如有问题请联系本人!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值