Scala之List
列表
不可变列表(List)
-
在Scala中,通过
List来定义不可变列表,需要注意的是,List本身是一个抽象类,所以并不能直接使用List来构建对象,需要使用它的伴生对象来构建package com.fesco.listimport scala.::object ListDemo {def main(args: Array[String]): Unit = {// 方式一val list = List[Int](2, 3, 4, 5, 6)println(list)val list2 = List.apply(2, 3, 4, 5, 6)println(list2)// 方式二:// :: 在list之前来追加数据val list3 = 1 :: listprintln(list3)// 方式三:// Nil是List的子类,表示一个空列表val list4 = Nilprintln(list4)// 方式四:val list5 = 1 :: 2 :: 3 :: 4 :: Nilprintln(list5)}} -
List被
sealed修饰,说明List是一个密封类,那么就意味着List的子类必须和List处在同一个scala文件中,即List无法直接扩展 -
基本操作
package com.fesco.listobject ListDemo2 {def main(args: Array[String]): Unit = {val list = List[Int](3, 4, 8, 1, 5, 9, 7)// 获取指定下标位置上的元素// 底层实际上是调用了父特质LinearSeq中的apply函数println(list(2))// 等价于println(list.apply(2))// 获取第一个元素// println(list(0))// 等价于println(list.head)// 获取最后一个元素println(list.last)// 追加一个元素 - 产生一个新的列表// val r1 = list :+ 6val r1 = list.:+(6)println(r1)// 在头部追加元素// 从右向左计算val r2 = 1 +: list// val r2 = list.+:(1)// 当出现:的时候,:对着谁就从谁开始计算// 如果两边都有:,那么从右向左计算// 错误的写法:list +: 1println(r2)// 或者// val r3 = list.::(1)val r3 = 1 :: list// list :: 1println(r3)// 构建了列表// 从右到左:先构建空列表List(),然后头部拆入5,在插入4val r4 = 1 :: 2 :: 3 :: 4 :: 5 :: List()// 等价于val r5 = 1 :: 2 :: 3 :: 4 :: 5 :: Nilprintln(r4)println(r5)}} -
列表的合并
package com.fesco.listobject ListDemo3 {def main(args: Array[String]): Unit = {val list1 = List[Int](1, 2, 3, 4)val list2 = List[Int](5, 6, 7, 8)// 合并列表val r1 = list1 ++ list2println(r1)val r2 = list1 ++: list2println(r2)val r3 = list1 :++ list2println(r3)val r4 = list1.concat(list2)println(r4)val r5 = list1 ::: list2println(r5)}}
可变列表(ListBuffer)
-
Scala中,通过ListBuffer来定义可变列表
package com.fesco.listimport scala.collection.mutable.ListBufferobject ListBufferDemo {def main(args: Array[String]): Unit = {// 方式一// 调用ListBuffer类的主构造器val buffer1 = new ListBuffer[Int]()buffer1 += 4println(buffer1)// 方式二// 调用了ListBuffer伴生对象中的apply函数val buffer2 = ListBuffer[Int](1, 2, 3, 4, 5)println(buffer2)}} -
基本操作
package com.fesco.listimport scala.collection.mutable.ListBufferobject ListBufferDemo2 {def main(args: Array[String]): Unit = {val list = ListBuffer[Int](1, 2, 3, 4, 5)// 在尾部追加元素list += 4list append 7println(list)// 在头部插入元素list prepend 0// list.+=:(2)2 +=: listprintln(list)// 在指定下标位置上插入元素list.insert(3, 6)println(list)// 修改指定位置上的元素list(2) = 10list.update(3, 12)println(list)// 删除指定下标位置上的元素list.remove(0)println(list)// 删除指定的元素(第一个)list -= 3println(list)}} -
合并列表
package com.fesco.listimport scala.collection.mutable.ListBufferobject ListBufferDemo3 {def main(args: Array[String]): Unit = {val list1 = ListBuffer[Int](1, 2, 3)val list2 = ListBuffer[Int](4, 5, 6)// 将list1和list2合并// ++合并之后产生一个新的列表,而不是修改原列表val r1 = list1 ++ list2println(r1)// 要求:将list2中的数据合并到list1中list1 ++= list2println(list1)// 获取list1中有而list3中没有的数据 - 差集val list3 = ListBuffer[Int](1, 3, 5, 7)list1 --= list3println(list1)}}
相关文章:
Scala之List
列表 不可变列表(List) 在Scala中,通过List来定义不可变列表,需要注意的是,List本身是一个抽象类,所以并不能直接使用List来构建对象,需要使用它的伴生对象来构建 package com.fesco.listimport scala.::object ListD…...
Springboot+Vue项目-基于Java+MySQL的在线视频教育平台系统(附源码+演示视频+LW)
大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…...
Java IO流-字节流
简介 IO流的输入与输出,都在站在内存的角度来看的,因为毕竟是和内促你打交道的嘛! 分类 IO流是可以根据方向,或者最小单位进行划分的 上述两两结合一下,就得到四种大的分类 IO流的继承体系 字节输入流InputStream 创建…...
第十五届蓝桥杯复盘python大学A组——试题B 召唤数学精灵
按照正常思路解决,由于累乘消耗大量时间,因此这不是一个明智的解决方案。 这段代码执行速度非常慢的原因在于它试图计算非常大的数的阶乘(累乘),并且对于每一个i的值都执行这个计算。阶乘的增长是极其迅速的ÿ…...
网络通信——常见结构及强联网游戏和弱联网游戏区别
声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。 网络通信——常见结构及强联网游戏和弱联网游戏区别 文章目录 网络通信——常见结构及强联网游戏和…...
如何安装PyFluent
0.什么是PyFluent? 官方介绍如下: PyFluent 是 PyAnsys 生态系统的一部分, 允许您在所选的 Python 环境中结合使用 Fluent 与其他 PyAnsys 库和外部 Python 库一起使用。 PyFluent 实现了客户端-服务器体系结构。它使用谷歌遥控器 过程调用或 gRPC 接…...
Qt 2 QMapQHashQVector类实例
1. QMap // 1:QMap的使用// 创建一个QMap 实例 key 为 QString value 为 intQMap<QString,int> Grade;// 插入方式有两种插入方式// 1.map[key] valueGrade["语文"] 90;Grade["数学"] 120;// 2.map.insert(key,value);Grade.insert("英语&qu…...
使用Git将文件夹上传到Github以及使用Git LFS上传大文件
使用Git将文件夹上传到Github以及使用Git LFS上传大文件...
1.SCI各模块
1.学会“抄” 写论文,一定要学会“抄”!这样才能事半功倍,尤其是对于初次写作的新手,否则写作过程一定会让你痛不欲生,而且写出来的东西就是一坨shi,不仅折磨自己,也折磨导师。 写论文与建大楼…...
记录shell编程中$1,$@等符号的含义
笔者最近老是遇到shell中的$相关的题目,于是打算写篇文章记录一下。考虑到并没有特别多需要解释的内容,所以并不会进行介绍,上图上表上代码,让机器说话,machine always right test.sh #/bin/bash echo $# $# echo …...
单链表的应用
文章目录 目录1. 单链表经典算法OJ题目1.1 [移除链表元素](https://leetcode.cn/problems/remove-linked-list-elements/description/)1.2 [链表的中间节点](https://leetcode.cn/problems/middle-of-the-linked-list/description/)1.3 [反转链表](https://leetcode.cn/problem…...
手机副业赚钱秘籍:让你的手机变成赚钱利器
当今社会,智能手机已然成为我们生活不可或缺的一部分。随着技术的飞速进步,手机不再仅仅是通讯工具,而是化身为生活伴侣与工作助手。在这个信息爆炸的时代,我们时常会被一种焦虑感所困扰:如何能让手机超越消磨时光的定…...
(二十七)Flask之数据库连接池DBUtils库
目录: 每篇前言:DBUtils库模式一(底层使用threading.local实现):模式二:Flask中使用方式一:直接将DBUtils初始化放到settings.py文件中方式二:从utils文件夹中导入脚本使用DBUtils代码demo:每篇前言: 🏆🏆作者介绍:【孤寒者】—CSDN全栈领域优质创作者、HDZ核心…...
FewShotPromptTemplate和SemanticSimilarityExampleSelector的学习
FewShotPromptTemplate 和 SemanticSimilarityExampleSelector 是在少样本学习(FewShot Learning)场景中常用的两种技术,它们在提高模型泛化能力和减少对大量标注数据的依赖方面扮演着重要角色。 下面我会解释它们之间的关系: F…...
【保姆级】2024年OnlyFans订阅指南
OnlyFans是一个独特的社交媒体平台,它为创作者和粉丝提供了一个互动交流的空间。通过这个平台,创作者可以分享他们的独家内容,而粉丝则可以通过订阅来支持和享受这些内容。如果你对OnlyFans感兴趣,并希望成为其中的一员࿰…...
深入理解JVM中的G1垃圾收集器原理、过程和参数配置
码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在Java虚拟机(JVM)中,垃圾收集(GC)是一个自动管理内存的过程ÿ…...
VUE3 + Elementui-Plus 之 树形组件el-tree 一键展开(收起);一键全选(不全选)
需求: 产品要求权限树形结构添加外部复选框进行全部展开或收起;全选或不全选。 实现步骤: tree组件部分: <div class"role-handle"><div>权限选择(可多选)</div><div><el-checkbox v-mode…...
【Godot4自学手册】第三十七节钥匙控制开门
有些日子没有更新了,实在是琐事缠身啊,今天继续开始自学Godot4,继续完善地宫相关功能,在地宫中安装第二道门,只有主人公拿到钥匙才能开启这扇门,所以我们在合适位置放置一个宝箱,主人公开启宝箱…...
GitHub repository - Pulse - Contributors - Network
GitHub repository - Pulse - Contributors - Network 1. Pulse2. Contributors3. NetworkReferences 1. Pulse 显示该仓库最近的活动信息。该仓库中的软件是无人问津,还是在火热地开发之中,从这里可以一目了然。 2. Contributors 显示对该仓库进行过…...
RocketMQ 10 面试题FAQ
RocketMQ 面试FAQ 说说你们公司线上生产环境用的是什么消息中间件? 为什么要使用MQ? 因为项目比较大,做了分布式系统,所有远程服务调用请求都是同步执行经常出问题,所以引入了mq 解耦 系统耦合度降低,没有强依赖…...
glTF Pipeline完全攻略:高效3D模型优化解决方案
glTF Pipeline完全攻略:高效3D模型优化解决方案 【免费下载链接】gltf-pipeline Content pipeline tools for optimizing glTF assets. :globe_with_meridians: 项目地址: https://gitcode.com/gh_mirrors/gl/gltf-pipeline 3D模型加载缓慢、文件体积过大&am…...
【2026年阿里巴巴春招- 4月1日-开发岗-第一题- 数组对齐】(题目+思路+JavaC++Python解析+在线测试)
题目内容 笨蛋同学拿到两个长度均为 nnn 的非负整数数组 a1,a2,…,ana_1,a_2,\dots,a_na...
如何解决ViPER4Windows兼容性难题?5步打造Windows 10/11音效增强终极方案
如何解决ViPER4Windows兼容性难题?5步打造Windows 10/11音效增强终极方案 【免费下载链接】ViPER4Windows-Patcher Patches for fix ViPER4Windows issues on Windows-10/11. 项目地址: https://gitcode.com/gh_mirrors/vi/ViPER4Windows-Patcher 副标题&…...
Wan2.2-I2V-A14B数据预处理流水线:使用OpenCV自动化处理输入图像
Wan2.2-I2V-A14B数据预处理流水线:使用OpenCV自动化处理输入图像 1. 为什么需要图像预处理 在图像生成视频(I2V)的流程中,输入图像的质量直接影响最终视频的生成效果。就像做菜前需要洗净切好食材一样,对原始图像进行…...
m4s-converter:让B站缓存重获新生的轻量级格式转换工具
m4s-converter:让B站缓存重获新生的轻量级格式转换工具 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 当你辛苦缓存的B站视频因下架…...
Phi-4-mini-reasoning助力Web前端开发:智能UI组件设计与代码生成
Phi-4-mini-reasoning助力Web前端开发:智能UI组件设计与代码生成 1. 引言:当AI遇见前端开发 想象一下这样的场景:产品经理拿着一份复杂的需求文档找到你,描述了一个需要实时数据更新、多状态切换、动态交互的仪表盘界面。传统开…...
Fastboot Enhance:高效Android刷机工具与Payload管理平台
Fastboot Enhance:高效Android刷机工具与Payload管理平台 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 价值定位:重新定…...
OpenClaw+Qwen3.5-9B:科研党的文献综述加速器
OpenClawQwen3.5-9B:科研党的文献综述加速器 1. 为什么需要AI辅助文献处理 去年冬天,我在准备一篇关于量子计算在金融领域应用的综述论文时,遇到了所有科研人共同的噩梦:堆积如山的PDF文献。下载了87篇相关论文后,光…...
精密五金结构件配套
一、我们能为机器人行业提供什么?专注机器人非核心精密五金结构件配套,面向:工业机器人|协作机器人|人形机器人|AGV/AMR|末端执行器|减速器 / 伺服 / 模组|自动化集成工作…...
告别卡顿!Llama-3.2V-11B-cot双卡优化版,流畅体验11B大模型的视觉推理
告别卡顿!Llama-3.2V-11B-cot双卡优化版,流畅体验11B大模型的视觉推理 还在为多模态大模型运行卡顿而烦恼?今天要介绍的Llama-3.2V-11B-cot双卡优化版,将彻底改变你对11B参数大模型的认知。这个经过深度优化的视觉推理工具&#…...
