Scala中的集合

水善利万物而不争,处众人之所恶,故几于道💦

目录

一、集合简介
二、集合关系继承图

一、集合简介

Java中的集合:

在这里插入图片描述Scala中的集合:

在这里插入图片描述

  • Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。

  • Seq是Java没有的,我们发现List归属到Seq了,因此这里的List就和Java中的List不是同一个概念了

    • Java中List是个接口
    • Scala中List是个类
  • 对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包
      不可变集合:scala.collection.immutable
      可变集合: scala.collection.mutable

  • Scala不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而
    不会对原对象进行修改。类似于java中的String对象

  • 可变集合,就是这个集合可以直接对原对象进行修改,而不会返回新的对象。类似
    于java中StringBuilder对象

可变和不可变指的是什么:

  可变和不可变不是说这个集合中元素的值可不可以修改,集合中元素的值修改和可不可变没关系,这里的可变集合指的是,当你对这个集合进行增加或者删除元素的时候,会不会创建新的对象。换句话说就是会不会在原来集合对象的基础上进行操作。

  • 如果是不可变集合的话,你增加或删除元素后,他会重新创建一个新的集合对象返回给你
  • 如果是可变集合的话,你进行增加或删除元素操作的时候,他会在原来集合对象的基础上进行操作,然后把操作后的这个集合再返回给你,这个过程中并没有创建新的集合对象
  • 可变集合和不可变集合都可以对集合中元素的值进行修改

解释:对集合进行修改指的是对集合对象进行增加或者删除元素,修改集合中的元素值只是对集合中的元素值进行了更新,没有对集合对象进行修改。

  • 在大数据场景下,不可变集合用的场景多,因为你不太可能在原来的数据上直接做修改,而是将修改后的数据存到另一个集合中,原来的数据还在。

二、集合关系继承图

在这里插入图片描述

在这里插入图片描述

其中,IndexedSeq和LinearSeq的区别是:

  • IndexedSeq使用数组进行存储,通过索引进行查找,速度块
  • LinearSeq通过链表进行存储,有头和尾的概念,通过遍历来查找

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/36920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单片机基于stm32单片机的数字温度计设计_kaic

摘 要 古往今来,陶瓷在我们的生活中一直都是不可或缺的物品,而随着当今社会经济的快速发展,人们对于这些高档陶瓷产品的使用性能和产品质量上的要求也愈加严格。那么在陶瓷品的生产过程中,想要提高陶瓷品的品质和合格率,能够随时监测温度的温度计是必不可少的。 本课题的研究是…

MySQL单表查询练习题

目录 第一题 第二题 第三题 第一题 1.创建数据表pet,并对表进行插入、更新与删除操作,pet表结构如表8.3所示。 (1)首先创建数据表pet,使用不同的方法将表8.4中的记录插入到pet表中。 mysql> create table pet( name varchar(…

IDEA+SpringBoot+mybatis+SSM+layui+Mysql客户管理系统源码

IDEASpringBootmybatisSSMlayuiMysql客户管理系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.修改密码3.客户管理4.添加客户5.充值记录管理6.消费记录管理7.客户类型8.添加客户类型 三、部分代码UserMapper.javaLoginController.javaUser.java 四、其他获取源码 一、…

【MQ】Windows上RabbitMQ的安装与启动

文章目录 下载Erlang安装RabbitMQ 下载Erlang RabbitMQ基于Erlang语言,因此使用RabbitMQ之前需要先安装Erlang,如下 Erlang语言下载 这里我是用的是25.2.2这个版本,我的机器是64bit的,所以下win64的即可。 下载完毕安装包之后点…

List移除元素的四种方式

List 移除某个元素 四种方式: 方式一,使用 Iterator ,顺序向下,如果找到元素,则使用 remove 方法进行移除。方式二,倒序遍历 List ,如果找到元素,则使用 remove 方法进行移除。方式…

在Windows server 2012上使用virtualBox运行CentOS7虚拟机,被强制暂停

文章目录 问题场景排查过程处理解决事后反思 问题场景 我们的平台服务使用docker部署,使用docker-compose进行管理,部署到CentOS7的服务器里平台部署到客户环境时,一小部分客户,使用自己机房或单独的服务器。很多客户不愿意采购新…

【MySQL】SQL索引失效的几种场景及优化

MySQL中提高性能的一个最有效的方式是对数据表设计合理的索引。索引提供了高效访问数据的方法,并且加快查询的速度, 因此索引对查询的速度有着至关重要的影响。 使用索引可以快速地定位表中的某条记录,从而提高数据库查询的速度,…

【东南亚情报局】Lazada饰品商家如何做到8倍的增长率

用小小的商品挖呀挖呀挖,在东南亚的市场,种出大大的花~如何抓住东南亚消费者的心巴,踩中时尚节拍,本篇文章《东南亚情报局》一起看看饰品趋势都有哪些特征! 【1.指南篇】 Y2K:Y2K风格在亚洲迅速火爆起来,…

微信小程序精选,多样化的功能与便捷体验

白噪音Pro、魔术字体和天天倒计时,这三款微信小程序正越来越受到我们的欢迎。它们各自具有独特的功能和特点,为我们提供了多样化的体验。现在,让我们一起来详细介绍一下这三款小程序。 首先是白噪音Pro。随着生活节奏的加快和压力的增加&…

【图像处理】Python判断一张图像是否亮度过低

比如: 直方图: 代码: 这段代码是一个用于判断图像亮度是否过暗的函数is_dark,并对输入的图像进行可视化直方图展示。 首先,通过import语句导入了cv2和matplotlib.pyplot模块,用于图像处理和可视化。 i…

LeetCode 203. 移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 (1)直接使用原来的链表来进行移除节点操作: //不带头结点删除元素节点 class Solution { public:Lis…

【C语言督学营 第十八天】考研408排序大题初探(将排序思想融入题目)

文章目录 题目一分析代码实战 题目二分析代码实战 补充(快排与归并)数据结构大题注意点!!!(评分标准) 题目一 分析 (1)算法的基本设计思想 由题意知,将最小的nl2个元素放在Ai中,其余的元素放在A2中&#x…

vue+elementui实现app布局小米商城,样式美观大方,功能完整

目录 一、项目效果在线预览 二、效果图 1.首页效果图 2.分类,动态分类商品数据根据所属分类动态切换 3.购物车,动态添加购物车(增、删、改、查) 4.我的 5.登录注册 6.商品详情 7.搜索(动态模糊搜索、搜索历史…

如何安装本地Go Tour教程(或者叫A Tour of Go离线版),以及中文版安装不了该怎么办

Go 官方是有一个在线教程 A Tour of Go,可以在线学习 Go 的编程,并且有中文版。英文原版页面如下: 出人意料的是,Go 提供了离线版(各个语言都有),下载安装之后就可以在本地编译运行查看结果&a…

阿里云AliYun物联网平台使用-设备添加以及模拟设备端上云

一、前言 上一篇文章提到,我们已经申请了免费的阿里云平台,下面需要将我们的设备在阿里云上进行注册和申请,以便于我们的数据上云。 二、步骤 注册产品(设备模型) 在产品页面,点击 "创建产品" 。…

Blender基础入门(2):Blender简单渲染

文章目录 我个人的Blender专栏前言渲染基本常识科普Blender渲染设置Blender窗口分栏分屏渲染 渲染设置GPU渲染引擎推荐最大采样 切换摄像机渲染图片渲染采样512和4096差异512采样4096采样 渲染建议 我个人的Blender专栏 Blender简单教学 前言 渲染是从白模到成品的过程&…

go 爬虫速度控制

go 爬虫速度控制 使用go语言用原生net/http写爬虫如何优雅的控制并发和请求速度控制并发限流并发和限流的区别简单说明有了并发控制为什么还要限流 最总代码 使用go语言用原生net/http写爬虫如何优雅的控制并发和请求速度 go程序的执行效率相对python要快的多,且占…

货币政策和汇率波动——使用Python进行量化分析

货币政策和汇率波动是国际贸易和投资中的重要问题,对于投资者来说具有重要的影响。本文将介绍如何使用Python进行量化分析,以揭示货币政策和汇率波动之间的关系。 一、货币政策与汇率波动 货币政策作为国家宏观调控的一种手段,对汇率波动具…

ELK-日志服务【logstash-安装与使用】

目录 【1】安装logstash logstash input 插件的作用与使用方式 【2】input --> stdin插件:从标准输入读取数据,从标准输出中输出内容 【3】input -- > file插件:从文件中读取数据 【4】input -- > beat插件:从filebe…

赛效:如何用在线压缩GIF图片

1:在电脑网页上打开并登录快改图,点击左侧菜单栏里的“GIF压缩”。 2:点击页面中间的上传按钮,将电脑本地的GIF文件上传上去。 3:GIF文件上传成功后,设置下方压缩设置,点击右下角“开始压缩”。…