当前位置: 首页 > news >正文

Scala数组

数组

- 可变数组:以 ArrayBuffer 创建,可灵活增删改元素 ,如 ArrayBuffer(1, 2, 3)  ,并通过 append 等方法操作。

- 不可变数组:由 Array 构建,创建后元素不可变,可借助 toBuffer 等方法转换为可变形式 ,像 Array(1, 2, 3)  。

arr1.toBuffer  //组转

arr2.toArray //可变不可数组

- 多维数组:用 Array.ofDim 创建,如 Array.ofDim[Int](3, 4) 表示3行4列数组 。

列表

- 不可变List:默认不可变,元素有序且可重复,支持创建、元素添加(如 :+ 操作 )、扁平化等操作 ,示例 List(1, 2, 3)  。

- 可变ListBuffer:可变集合,通过 collection.mutable.ListBuffer 导入,可实现元素的增删 ,如 ListBuffer(1, 2, 3)  , += 添加元素 。

集合

- 不可变Set:元素无序且唯一,可进行常规创建、添加( +  )、删除( -  )元素操作 ,例如 Set(1, 2, 3)  。

- 可变HashSet:借助 scala.collection.mutable.HashSet 导入,具备可变特性,能对元素进行增删 ,如 HashSet(1, 2, 3)  。

    1. 创建可变集合 mutable.Set
    2. 打印集合
    3. 集合添加元素
    4. 向集合中添加元素,返回一个新的 Set
    5. 删除数据

元组

能容纳不同类型元素,通过索引访问 ,例如 (1, "abc", 3.0)  ,使用 ._1 、 ._2 等访问对应位置元素 。

Map

- 不可变Map:以键值对形式存在,不可变,可创建、查找 ,如 Map("key1" -> 1, "key2" -> 2)  , get 方法取值 。

    1. 创建不可变集合 Map
    2. 循环打印
    3. 访问数据
    4. 如果 key 不存在,返回 0

- 可变mutable.Map:经 scala.collection.mutable.Map 引入,可变,可进行键值对的增删改 ,如 mutable.Map("key" -> 1)  。

    1. 创建可变集合
    2. 打印集合
    3. 向集合增加数据
    4. 删除数据

集合常用函数

基本属性和常用操作

获取集合 长度获取集合大小 循环遍历 迭代器 生成字符串 是否包含

衍生集合

    1. 获取集合的头

    1. 获取集合的尾(不是头的就是尾)
    2. 集合最后一个数据
    3. 集合初始数据(不包含最后一个)
    4. 反转
    5. 取前(后)n 个元素
    6. 去掉前(后)n 个元素
    7. 并集
    8. 交集
    9. 差集
    10. 拉链
    11. 滑窗

集合计算简单函数

    1. 求和
    2. 求乘积
    3. 最大值
    4. 最小值
    5. 排序

  1. sorted

对一个集合进行自然排序,通过传递隐式的Ordering

  1. sortBy

对一个属性或多个属性进行排序,通过它的类型。

  1. sortWith

基于函数的排序,通过一个 comparator 函数,实现自定义排序的逻辑

相关文章:

Scala数组

数组 - 可变数组:以 ArrayBuffer 创建,可灵活增删改元素 ,如 ArrayBuffer(1, 2, 3) ,并通过 append 等方法操作。 - 不可变数组:由 Array 构建,创建后元素不可变,可借助 toBuffer 等方法转换为…...

Win11 24H2用户个性化设置OOBE跳过微软账户使用本地账户方法

目前Win11已经更新到24H2版本,经过小编测试,已经有两种方法失效了,分别如下。 1.shiftFnF10,oobe \bypassnro 2.微软账户注册界面,输入特定邮件地址和随机密码,例如nothankyou.com、exampleexample.com等…...

遍历集合list工具

文章目录 1.遍历集合list,返回第一个匹配的对象/不匹配返回null:2.集合list排序3.遍历list对象,返回匹配的集合4.从 dbRepeaters 列表中筛选出所有 repeaterId 在 repeaterIds 数组中的 Repeater 对象,并将这些对象收集到一个新的…...

基于 SmartX 原生容灾能力构建简单经济的容灾方案:5 大场景与 4 例实践合集

不少企业都基于虚拟化/超融合架构支持多种核心应用系统与数据库。这些场景不仅涉及多种类型的工作负载,在数据可靠性层面也需要不同级别的保护策略,一些用户还面临灾备演练、集中容灾等更多样的容灾需求,因此,构建全面可靠、易用高…...

说一下分布式组件时钟一致性的解决方案

为什么需要时钟一致性? 在分布式系统中,时钟一致性是确保各节点时间同步的关键问题。 时钟不同步可能导致日志混乱、事务顺序错误、数据不一致等问题 1. 物理时钟同步 基础方案:NTP(网络时间协议) 原理&#xff1a…...

aws s3api 常用命令

AWS S3API 是 Amazon Web Services&#xff08;AWS&#xff09;提供的用于与简单存储服务&#xff08;S3&#xff09;进行交互的命令行工具&#xff0c;以下是一些常用命令&#xff1a; 桶操作 创建桶 aws s3api create-bucket --bucket <bucket-name> --region <r…...

006 ElementUI

https://element.eleme.cn/#/zh-CN ElementUI是组件库&#xff0c;网站快速成型工具 npm i element-ui2.12.0在 main.js 中写入以下内容&#xff1a; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; Vue.use(ElementUI);...

el-select组件与el-tree组件结合实现下拉选择树型结构框

下拉选择树型结构框 实现效果图组件完整代码 实现效果图 组件完整代码 <template><div class"tree-con"><el-selectv-model"value"placeholder"请选择"class"bs-select"ref"select"><el-optionv-for&…...

windows系统更新nvidia 驱动, 并安装pytorch

windows系统更新nvidia 驱动&#xff0c; 并安装pytorch 1.更新前nvidia-smi 显示版本比较久 2.方法一&#xff1a;通过NVIDIA GeForce Experience自动更新 NVIDIA GeForce Experience是NVIDIA官方提供的一款软件&#xff0c;它不仅可以帮助用户优化游戏设置&#xff0c;还能…...

如何深刻理解Reactor和Proactor

前言&#xff1a; 网络框架的设计离不开 I/O 线程模型&#xff0c;线程模型的优劣直接决定了系统的吞吐量、可扩展性、安全性等。目前主流的网络框架&#xff0c;在网络 IO 处理层面几乎都采用了I/O 多路复用方案(又以epoll为主)&#xff0c;这是服务端应对高并发的性能利器。 …...

如何使用WRF-Hydro GIS工具,生成运行WRF-Hydro模型的Domain文件,包括流域、地形、河网、湖泊等

WRF-Hydro模型作为一个集成了大气和水文过程的模型&#xff0c;具有一些挑战性的难点&#xff0c;包括&#xff1a; 复杂的耦合过程&#xff1a;WRF-Hydro模型需要同时考虑大气和水文过程的相互作用&#xff0c;包括降水、蒸发、径流等一系列过程的耦合&#xff0c;这使得模型的…...

adb devices报错 ADB server didn‘t ACK

ubuntu下连接手机首次使用adb devices 报错ADB server didn’t ACK adb devices * daemon not running; starting now at tcp:5037 ADB server didnt ACK Full server startup log: /tmp/adb.1000.log Server had pid: 52986 --- adb starting (pid 52986) --- 04-03 17:23:23…...

机器学习——决策树

1.什么要学习决策树&#xff1f; 处处都是选择,并且到处都是岔路口。比如你发现某只股票几天时间内涨了很多,如果是你,你会买进吗&#xff1f;如果买进了,你就得承担后果,要么会大赚一笔,要么会血本无归。总之&#xff0c;用算法替代主观判断&#xff0c;避免情绪化投资决策。 …...

zk源码—2.通信协议和客户端原理二

大纲 1.ZooKeeper如何进行序列化 2.深入分析Jute的底层实现原理 3.ZooKeeper的网络通信协议详解 4.客户端的核心组件和初始化过程 5.客户端核心组件HostProvider 6.客户端核心组件ClientCnxn 7.客户端工作原理之会话创建过程 6.客户端核心组件ClientCnxn (1)客户端核心…...

Python设计模式:构建模式

1. 什么是构建模式 构建模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许使用多个简单的对象一步步构建一个复杂的对象。构建模式通过将构建过程与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。换句话说&#xff0c;构建模…...

C++类间的 “接力棒“ 传递:继承(下)

文章目录 5. 继承与友元6.继承与静态成员7.菱形继承8.继承和组合希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 本篇接着补充继承方面的内容&#xff0c;同时本篇的菱形继承尤为重要 5. 继承与友元 class Student; class Person { public:fri…...

C++11QT复习 (十六)

文章目录 Day11 移动语义回顾一、移动语义基础概念二、自定义 String 类的移动语义实现输出运算符重载&#xff1a; 三、测试函数&#xff1a;验证移动与拷贝行为四、左值与右值的补充说明右值引用作为函数返回值 五、知识总结如何区分左值与右值&#xff1f; 六、附加说明&…...

Redis客户端命令到服务器底层对象机制的完整流程?什么是Redis对象机制?为什么要有Redis对象机制?

Redis客户端命令到服务器底层对象机制的完整流程 客户端 → RESP协议封装 → TCP传输 → 服务器事件循环 → 协议解析 → 命令表查找 → 对象机制 → 动态编码 → 数据结构操作 → 响应编码 → 网络回传 Redis客户端命令到服务器底层对象机制的完整流程可分为协议封装、命令解…...

鸿蒙NEXT开发节流、防抖工具类(ArkTs)

import { CacheUtil } from ./CacheUtil; import { DateUtil } from ./DateUtil;/*** 节流、防抖工具类&#xff08;用于点击事件&#xff0c;防止按钮被重复点击&#xff09;** author 鸿蒙布道师* since 2025/04/07*/ export class ClickUtil {private static throttleTimeou…...

Qt程序 Windows打包

目的 运行Qt的程序&#xff0c;遇上如下问题&#xff1a; 显然是少很多Qt库&#xff0c;那就把Qt库放到这里&#xff0c;Qt提供这一个命令windeployqt.exe. windeployqt windeployqt是Qt框架提供的一个工具&#xff0c;主要用于自动打包Windows平台上的Qt应用程序及其依赖项…...

2025-04-07(DS复习):Databricks DLT 详解

Databricks Delta Live Tables (DLT) 详解 Delta Live Tables (DLT) 是 Databricks 提供的一个智能框架&#xff0c;用于构建可靠、可扩展的数据处理管道。它简化了ETL(提取、转换、加载)和ELT(提取、加载、转换)流程的开发和管理&#xff0c;特别适合在数据湖house架构中实现…...

音视频入门基础:RTCP专题(3)——RTCP协议简介(中)

本文接着《音视频入门基础&#xff1a;RTCP专题&#xff08;2&#xff09;——RTCP协议简介&#xff08;上&#xff09;》&#xff0c;继续对RTCP协议进行简介。本文的一级标题从“九”开始。 九、Sender and Receiver Reports 本段内容对应《RFC 3550》的第6.4节。根据《RFC …...

嵌入式工程师多线程编程(二)生产者-消费者模式

生产者-消费者模式详解&#xff1a;多线程编程的核心范式 生产者-消费者模式(Producer-Consumer Pattern)是多线程编程中最经典的设计模式之一&#xff0c;它通过解耦生产者和消费者的工作流程&#xff0c;实现了线程间的高效协作与资源管理。本文将深入剖析这一模式的原理、实…...

秒杀系统的性能优化

秒杀任务总体QPS预期是每秒几十万&#xff0c;对tomcat、redis、JVM参数进行优化。 tomcat线程数 4核8G的机器&#xff0c;一般就是开200-300个工作线程&#xff0c;这是个经验值。每秒一个线程处理3-5个请求&#xff0c;200多个线程的QPS可以达到1000左右。线程不能太多&…...

MySQL学习笔记集--索引

索引 索引是数据库中用于提高查询效率的一种数据结构。 它类似于书籍的目录&#xff0c;通过索引可以快速定位到表中的特定行&#xff0c;而无需扫描整个表。 索引的类型 主键索引&#xff08;Primary Key Index&#xff09; 自动创建&#xff0c;用于唯一标识表中的每一行。…...

深入理解重排(Reflow)与重绘(Repaint),写出高性能 CSS 动画

在前端开发中&#xff0c;CSS 动画是提升用户体验的重要手段&#xff0c;但很多开发者在使用动画时并不了解浏览器背后的渲染机制&#xff0c;导致动画卡顿甚至影响整体性能。本文将带你深入理解 CSS 中的两大核心概念 —— 重排&#xff08;Reflow&#xff09; 与 重绘&#x…...

Elasticsearch 从入门到实战:文档聚合操作及总结

四、文档操作&#xff1a;数据的增删改查 4.1 添加文档 文档&#xff08;Document&#xff09;是索引中的最小数据单元&#xff0c;使用 POST 或 PUT 添加&#xff1a; json POST /products/_doc/1 { "name": "华为Mate50 Pro", "price": 6…...

前缀和和差分笔记

前缀和和差分笔记 一维前缀和 示意图如下&#xff1a; 代码&#xff1a; **核心公式&#xff1a;sum[i]sum[i-1]a[i];&#xff08;计算前缀和的&#xff09;**#include<bits/stdc.h> using namespace std; const int N10000; #define ll long long int a[N],sum[N]; i…...

SSRF漏洞利用的小点总结和实战演练

含义理解&#xff1a; SSRF&#xff08;Server-Side Request Forgery&#xff0c;服务器请求伪造&#xff09;是一种由攻击者构造请求&#xff0c;由服务端发起请求的安全漏洞&#xff0c;一般情况下&#xff0c;SSRF攻击的目标是外网无法访问的内网系统。 攻击者通过篡改URL…...

IAR推动嵌入式开发:云就绪、可扩展的CI/CD和可持续自动化

全球领先的嵌入式系统开发软件解决方案供应商IAR正式发布全新云就绪平台&#xff0c;为嵌入式开发团队提供企业级的可扩展性、安全性和自动化能力。该平台于在德国纽伦堡举办的embedded world 2025展会上正式亮相&#xff0c;标志着将现代DevSecOps工作流集成到嵌入式软件开发中…...

瓦片数据合并方法

影像数据 假如有两份影像数据 1.全球底层影像0-5级别如下&#xff1a; 2.局部高清影像数据级别9-14如下&#xff1a; 合并方法 将9-14文件夹复制到全球底层0-5的目录下 如下&#xff1a; 然后合并xml文件 使得Tileset设置到最高级&#xff08;包含所有级别&#xff09;&…...

RISC-V AIA学习---IPI 处理器间中断

对于有多个hart的机器&#xff0c;必须为每个 hart 提供一个由具体实现定义的内存地址。向这个地址写入数据&#xff0c;就能向该 hart 发送一个机器级软件中断&#xff08;主代码为 3&#xff09;。换句话说&#xff0c;机器级的 IPI 可以通过这种方式&#xff0c;以机器级软件…...

Automattic 裁员16%,Matt Mullenweg称此举旨在提升盈利能力并增强投资实力

2025年4月3日&#xff0c;Automattic——这家以 WordPress.com、Tumblr 和 WooCommerce 等产品闻名的公司&#xff0c;宣布裁减其全球员工队伍的16%。这一决定是在周三通过公司博客文章和 Slack 内部消息向员工透露的。根据裁员前 Automattic 官网显示的员工人数&#xff08;1,…...

图解AUTOSAR_SWS_FlexRayInterface

AUTOSAR FlexRay Interface 模块分析 本文档基于AUTOSAR SWS FlexRayInterface规范,对FlexRay Interface模块进行详细分析。 1. FlexRay Interface 模块架构 1.1 模块架构概览 1.2 架构说明 FlexRay Interface模块是AUTOSAR中的ECU抽象层组件,为上层模块提供统一的抽象接…...

AI赋能ArcGIS Pro——水系网络AI智能提取 | GIS人工智能制图技术解析

我们之前做了做了几期的AIGIS的分享。我们今天要再次做一个分享。 AI赋能ArcGIS Pro——水系网络智能提取全解析 DeepSeek结合ArcGIS Pro制作一个批量建库的脚本工具&#xff08;代码一字未改&#xff0c;直接运行&#xff09; 看老外如何玩DeepSeek&#xff01;15分钟快速创…...

STM32江科大----IIC

声明&#xff1a;本人跟随b站江科大学习&#xff0c;本文章是观看完视频后的一些个人总结和经验分享&#xff0c;也同时为了方便日后的复习&#xff0c;如果有错误请各位大佬指出&#xff0c;如果对你有帮助可以点个赞小小鼓励一下&#xff0c;本文章建议配合原视频使用❤️ 如…...

RAG(检索增强生成)系统,提示词(Prompt)表现测试(数据说话)

在RAG(检索增强生成)系统中,评价提示词(Prompt)设计是否优秀,必须通过量化测试数据来验证,而非主观判断。以下是系统化的评估方法、测试指标和具体实现方案: 一、提示词优秀的核心标准 优秀的提示词应显著提升以下指标: 维度量化指标测试方法事实一致性Faithfulness …...

【leetcode hot 100 763】划分字母区间

解法一&#xff1a;用map记录<字母&#xff0c;字母出现的次数>&#xff0c;循环取出value-1&#xff0c;每次判断已经取出的字母&#xff08;Set记录&#xff09;是否还在后面存在&#xff08;value>1&#xff09;&#xff0c;若存在继续循环&#xff0c;若不存在开启…...

PCB工艺:现代电子产品的核心制造技术

引言 PCB&#xff08;Printed Circuit Board&#xff0c;印刷电路板&#xff09;是电子设备的核心组成部分&#xff0c;几乎所有现代电子产品&#xff0c;从智能手机到航天设备&#xff0c;都依赖于PCB实现电路连接。PCB制造工艺的进步直接影响电子产品的性能、可靠性和成本。…...

【UE5 C++课程系列笔记】34——结构体与Json的相互转化

目录 准备工作 一、结构体转Json 二、Json转结构体 三、复杂结构体与Json的转换 主要通过借助FJsonObjectConverter类实现结构体和 JSON 之间的相互转换。 准备工作 首先新建一个结构体如下 添加两个方法分别用于将Struct转为Json、Json转为Struct 一、结构体转Json FStri…...

2025最新系统 Git 教程(二)

第2章 Git基础 2.1 Git 基础 - 获取 Git 仓库 如果你只想通过阅读一章来学习 Git&#xff0c;那么本章将是你的不二选择。 本章涵盖了你在使用 Git 完成各种工作时将会用到的各种基本命令。 在学习完本章之后&#xff0c;你应该能够配置并初始化一个仓库&#xff08;reposito…...

力扣hot100_动态规划

动态规划 hot100_198. 打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。…...

玄机-第六章-哥斯拉4.0流量分析的测试报告

目录 一、测试环境 二、测试目的 三、操作过程 Flag1 Flag2 Flag3 Flag4 Flag5 Flag6 Flag7 Flag8 Flag9 Flag10 Flag11 Flag12 Flag13 pam_unix.so关键代码 四、结论 一、测试环境 靶场介绍&#xff1a;国内厂商设置的玄机靶场&#xff0c;以应急响应题目著…...

【Hadoop入门】Hadoop生态圈概述:核心组件与应用场景概述

1 Hadoop生态圈概述 Hadoop生态圈是以 HDFS&#xff08;分布式存储&#xff09; 和 YARN&#xff08;资源调度&#xff09; 为核心&#xff0c;围绕大数据存储、计算、管理、分析等需求发展出的一系列开源工具集合。 核心特点&#xff1a; 模块化&#xff1a;各组件专注解决特定…...

深度学习实战电力设备缺陷检测

本文采用YOLOv11作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv11以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对电力设备缺陷数据集进行训练和优化&#xff0c;该数据集包含丰富的电力设备缺…...

随机产生4位随机码(java)

Random类&#xff1a; 用于生成随机数 import java.util.Random; 导入必要的类 generateVerificationCode()方法&#xff1a; 这是一个静态方法&#xff0c;可以直接通过类名调用 返回一个6位数字的字符串&#xff0c;首位不为0 生成首位数字&#xff1a; random.nextInt…...

音视频入门基础:RTCP专题(4)——RTCP协议简介(下)

本文接着《音视频入门基础&#xff1a;RTCP专题&#xff08;3&#xff09;——RTCP协议简介&#xff08;中&#xff09;》&#xff0c;继续对RTCP协议进行简介。本文的一级标题从“十四”开始。 十四、SDES: Source Description RTCP Packet 本段内容对应《RFC 3550》的第6.5节…...

PyCharm2024.3.5专业版解决Conda executable is not found问题

项目场景&#xff1a; pycharm使用anaconda 内的虚拟环境 pycharm 2024.3.5 专业版 C:\Users\Administrator>conda infoactive environment : transmute_recipe_generatoractive env location : D:\anaconda3\envs\transmute_recipe_generatorshell level : 1user config…...

滑动窗口思想 面试算法高频题

基本思想 滑动窗口思想其实就是快慢型的特例 计算机网络中滑动窗口协议&#xff08;Sliding Window Protocol&#xff09;&#xff0c;该协议是TCP实现流量控制等的核心策略之一。事实上在与流量控制、熔断、限流、超时等场景下都会首先从滑动窗口的角度来思考问题&#xff0…...

Linux中特殊的变量

1.$# 含义&#xff1a;表示传入脚本或函数的参数数量。 用法&#xff1a;用于检查用户是否提供了足够的参数。 示例&#xff1a; #!/bin/bash echo "参数数量: $#"2.$? 含义&#xff1a;表示上一条命令的退出状态。如果命令成功执行&#xff0c;值为 0&#xff1b;…...