首页 > 其他分享 >scala学习记录,Set,Map

scala学习记录,Set,Map

时间:2024-11-05 21:15:29浏览次数:3  
标签:Map Set scala 元素 添加 可变 mutable

set:集合,表示没有重复元素的集合,特点:唯一

语法格式:val 变量名 = Set [类型](元素1,元素2...)

可变不可变

可变(mutable)可对元素进行添加,删除等操作;不可变(immutable)创建后元素不能修改

如果要定义可变的Set(mutable),需要额外导入包:import scala.collection.mutable

Set常见操作

对于可变Set,我们可用+=来添加元素,对于不可变Set,创建一个新的Set来添加元素。

对于可变Set,我们可用-=来添加元素,对于不可变Set,创建一个新的Set来删减元素。

对于Set,我们可用++=来合并元素

查询元素是否存在,使用contains

使用union方法得到两个集合的并集

使用intersect方法得到两个集合的交集

使用diff方法得到两个集合的差集

小习一下:

1.在Scala中,可变和不可变的区别?

        能否修改元素

2.那个符号用于向可变元素添加元素?

        +=

3.对于不可变Set,如果添加一个新元素,会发生什么?

        创建一个新的Set

4.使用contains方法在Set中查询元素,返回值是什么类型?

        返回一个布尔值即Boolean(true或者false)。

5.求两个Set的交集使用的方法是什么?

        使用intersect方法得到两个集合的交集

Map(映射):是一种可迭代的键值对(key/Value)结构,所有值都可通过键来获取,Map中的键都是唯一的,定义时需要为键值对定义类型。

可变不可变

可变(mutable)可对元素进行添加,删除等操作;不可变Map对象不能修改

如果要定义可变的Map(mutable),需要额外导入包:import scala.collection.mutable

Map常见操作

对于可变Map,我们可用+=,put来添加元素,对于不可变Set,创建一个新的Map来添加元素。

对于可变Map,我们可用-=来添加元素,对于不可变Set,创建一个新的Map来删减元素。

用get查询Map中的值

修改: 

遍历:

小习一下:

1.在 Scala 中,不可变Map和可变Map的主要区别是什么?

        能否修改元素。


2.以下哪个操作符可以用于向可变Map添加元素?

        +=


3.使用 get 方法查询Map中不存在的键时,返回值是什么类型?

        None

4.对于不可变 Map,如果要添加新元素,会怎样?
        创建一个新的 Map


5.遍历 Map 可以使用哪些方法?
        for循环和foreach 方法

标签:Map,Set,scala,元素,添加,可变,mutable
From: https://blog.csdn.net/2402_87076376/article/details/143475032

相关文章

  • Set,Map课后练习
    Set实训内容:1.创建一个可变Set,用于存储图书馆中的书籍信息(假设书籍信息用字符串表示),初始化为包含几本你喜欢的书籍2.添加两本新的书籍到图书馆集合中,使用+=操作符3.删除一本图书馆集合中的书籍,使用+=操作符4.检查一本特定的书籍(eg:Python从入门到实践)是否在图书馆集合中,使......
  • Roaring Bitmap
    RoaringBitmap 原理RoaringBitmaps就是一种压缩位图索引,后文统称RBM,RBM的用途和Bitmap很差不多(比如说索引),只是说从性能、空间利用率各方面更优秀了。RBM的主要思想并不复杂,简单来讲,有如下三条:我们将32-bit的范围([0,n))划分为2^16个桶,每一个桶有一个Contai......
  • Scala Set集合
    1、Set的定义        Scala的Set分为可变和不可变,默认情况下使用不可变的集合。如果想要使用可变集合,需要导入指定的包。Set集合的特点是无序不重复。当在Set集合中添加元素时,没有重复的元素,并且不保证顺序。如果集合中有重复的元素,Set会自动去除掉重复的元素,Set集合......
  • k8s常用configmap配置文件
    apiVersion:apps/v1kind:Deploymentmetadata:labels:app.kubernetes.io/name:nginx-demoname:nginx-demospec:replicas:1selector:matchLabels:app.kubernetes.io/name:nginx-demotemplate:metadata:labels:app.kubernetes.i......
  • Nuxt.js 应用中的 nitro:build:public-assets 事件钩子详解
    title:Nuxt.js应用中的nitro:build:public-assets事件钩子详解date:2024/11/5updated:2024/11/5author:cmdragonexcerpt:nitro:build:public-assets是Nuxt3中的一个生命周期钩子,在复制公共资产之后调用。该钩子使开发者能够在构建Nitro服务器之前,对公共资产进......
  • 九、Go语言快速入门之map
    文章目录Map:one:使用`Map`:star2:声明和初始化:star2:`map`容量:star2:用切片作为`map`的值:two:测试键值对是否存在及删除元素:three:`For`-`range`:four:`map`类型的切片:five:map的排序:six:将map的健和值对调......
  • scala中类和对象
    1.面向对象的三大特征:封装,继承,多态2.创建类和对象a.用class来创建类,用new来创建对象。创建一个Person类并创建它的对象,然后将对象打印到控制台上objectMain{ //定义类 classPerson{} defmain(args:Array[String]):Unit={  println("Heeloworld") ......
  • 1-Collectors.toMap无法正确处理null值
    Collectors.toMap在在处理null值时,会出现NullPointerException示例DishCategoryAllPOd1=newDishCategoryAllPO();d1.setDishId(11111);d1.setPrimaryLabel("11111");DishCategoryAllPOd2=newDishCategoryAllPO();d2.setDishId(11111);DishCategoryAllPOd3......
  • scala的包及其导入
    Scala的包的定义:Scala的包用于解决类的命名冲突和类的文件管理。在引入类时加上包名可以区分不同的类,解决类名冲突的问题。 Scala的包创建步骤: 1.创建包:在src上右键,新建软件包2.填写包名:小写3.在包上右键,创建类。自动加入包名4.导入:import包名.类名  导入......
  • mapreduce流程
    *客户端通过hadoopfs-put/bigdata命令将元数据切分成块存放在HDFS上,且每一个块我们给大小128M*之后我们将每一个block块通过逻辑切片,切成一个个split()切片,一般,我们的默认切片大小跟block块保持一致,如果我们读到最后一个block块,与前一个block块组合起来的大小小于140M,将......