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

大数据学习之SCALA分布式语言三

7.集合类

111.可变set一

112.可变set二

113.不可变MAP集合一

114.不可变MAP集合二

115.不可变MAP集合三

116.可变map一

package com . itbaizhan . chapter07
//TODO 2. 使用 mutable.Map 前导入如下包
import scala . collection . mutable
// 可变 Map 集合 object MapMutable extends App {
//TODO 1. mutable.Map 表示可变的 Map 集合
val map1 = mutable . Map ( 1 -> " 刘备 " , 2 -> "
" , 3 -> " 张飞 " )
val map2 = mutable . Map ( 6 -> " 曹操 " , 7 -> "
" , 8 -> " 夏侯渊 " )
//TODO 3. 添加键值对元素 , Map 集合对象改变
map1 . put ( 4 , " 赵云 " )
println ( "put map1:" + map1 . mkString ( "," ))
//TODO 4. + 添加键值对不改变原集合
val map3 : mutable . Map [ Int , String ] = map1 +
( 5 -> " 凤雏 " )
println ( "+ map1:" + map1 . mkString ( "," ))
println ( "+ map3:" + map3 . mkString ( "," ))
println ( map1 eq map3 ) //false
//TODO 5. += 添加键值对改变原集合 , 并返回修改后 Map
象的地址
val map4 : mutable . Map [ Int , String ] = map1 +=
( 5 -> " 凤雏 " )
println ( "+= map1:" + map1 . mkString ( "," ))
println ( "+= map4:" + map4 . mkString ( "," ))
println ( map1 eq map4 ) //true
//TODO 6. 修改 key 对应的 value
map1 . update ( 1 , " 刘玄德 " )
println ( "update map1:" + map1 . mkString ( "," ))
map1 ( 1 ) = " 刘备 "
println ( "update map1:" + map1 . mkString ( "," ))
//TODO 7. 删除数据
map1 . remove ( 1 )
println ( "remove map1:" + map1 . mkString ( "," ))
// - 不改变原 Map 集合
val map5 : mutable . Map [ Int , String ] = map1 - 2  
println ( "map1 - 2 map1:" + map1 . mkString ( "," ))
println ( "map5:" + map5 . mkString ( "," ))
// -= 不改变原 Map 集合
val map6 : mutable . Map [ Int , String ] = map1 -=
3
println ( "map1 -= 3
map1:" + map1 . mkString ( "," ))
println ( "map6:" + map6 . mkString ( "," ))
println ( map1 eq map6 ) //true
//TODO 8. Map 集合转换为其它类型的集合
val set : Set [( Int , String )] = map1 . toSet
println ( "set:" + set )
println ( "set String:" + set . mkString ( "," ))
val list : List [( Int , String )] = map1 . toList
println ( "list:" + list )
println ( "list String:" + list . mkString ( "," ))
val seq : Seq [( Int , String )] = map1 . toSeq
println ( "seq:" + seq )
val array : Array [( Int , String )] =
map1 . toArray
println ( "array:" + array )
println ( "array String:" + array . mkString ( "," ))
//TODO 9. 其它常用方法
//get getOrElse 方法的用途同不可变 Map 一样
println ( map1 . get ( 2 ))
println ( map1 . getOrElse ( 1 , "default" ))
//keys 获取所有的 key: Iterable[T]
val keys : Iterable [ Int ] = map1 . keys
//keySet 获取所有的 key: collection.Set[T]
val keySet : collection . Set [ Int ] = map1 . keySet
//keysIterator 获取所有的 key:: Iterator[T] 实时效果反馈
1. 关于可变 Map 相关代码的描述,错误的是:
A
使用可变 Map 集合,通常在 Map 前使用
mutable.
, 并提前导入
scala.collection.mutable
B
mkString("分隔符")
Map 集合中的键值对转换为字符串,键值对
之间使用指定的符号分割元素, key value 之间使用 ->
C
update(1,"刘玄德")
如果 key 1 存在则修改,不存在则添加。
D
Map 集合不可以转换为其它类型的集合。
答案:
1=>D Map 集合转换为其它类型的集合
val keysIterator : Iterator [ Int ] =
map1 . keysIterator
//values 获取所有的 value: Iterable[T]
val values : Iterable [ String ] = map1 . values
//valuesIterator 获取所有的 value: Iterator[T]
val valuesIterator : Iterator [ String ] =
map1 . valuesIterator
// 清空 Map 集合
println ( "map2 clear :" + map2 . mkString ( "," ))
map2 . clear ()
println ( "map2 clear :" + map2 . mkString ( "," ))
//put 如果 key 不存在,则执行添加
map2 . put ( 1 , "aa" )
println ( "map2 put:" + map2 . mkString ( "," ))
}

117.可变map二

118.可变map三

119.不可变数组一

// 添加数组元素,创建新数组对象
val arr3 : Array [ Int ] = arr1 : + 5
println ( "arr1 string:" + arr1 . mkString ( "," ))
println ( "arr3
string:" + arr3 . mkString ( "," )) //8,9,0,5
val arr4 : Array [ Int ] = 5 +: arr1 //arr1 +: 5
识别
println ( "arr4
string:" + arr4 . mkString ( "," )) //5,8,9,0
// 添加集合中的全部元素
val arr5 : Array [ Int ] = arr1 ++ arr2
println ( "arr5 string:" + arr5 . mkString ( "," ))
val arr6 : Array [ Int ] = arr1 ++: arr2 // 等价 ++
println ( "arr6 string:" + arr6 . mkString ( "," ))
//TODO 5. 数组遍历
for ( ele <- arr1 ){
print ( ele + "\t" )
}
println ()
//arr1.foreach(println)
//arr1.foreach(print)
//TODO 6. 多维数组

120.不可变数组二

val matrixArray : Array [ Array [ Int ]] =
Array . ofDim [ Int ]( 3 , 2 )
matrixArray . foreach ( arrayEle => arrayEle . foreac
h ( println ))
//TODO 7. 合并数组 功能类似 ++
val arr7 : Array [ Int ] = Array . concat ( arr1 ,
arr2 )
println ( "arr7 string:" + arr7 . mkString ( "," ))
//TODO 8.range 的使用 实时效果反馈
1. 关于不可变 Array 相关的描述,错误的是:
A
不可变 Array 数据有序,可以重复。
B
不可变 Array 的不可变指的是堆内存中 Array 对象指向的数据
对象的地址不可变。
C
不可变 Array 中的元素不论通过怎样的操作都无法进行修
改。
D
不可变 Array 中的元素可以进行修改。
答案:
1=>C

121.不可变数组三

122.不可变数组四

123.可变数组一

package com . itbaizhan . chapter07
import scala . collection . mutable . ArrayBuffer
// 可变数组
object ArrayBufferDemo extends App {
//TODO 1. 可变数组实例化
val arrbuf1 = ArrayBuffer ( 'a' , 'b' , 'c' , 'd' )
val arrbuf2 = ArrayBuffer ( 'u' , 'v' , 'w' , 'x' )
//TODO 2. 添加元素,原数组改变,并返回改变后的数组
val arrbuf3 : ArrayBuffer [ Char ] = arrbuf1 +=
'e'
println ( arrbuf1 eq arrbuf3 ) // true
arrbuf1 . append ( 'f' , 'g' ) // 可以添加一个,也可以同时
添加多个元素
//TODO 3. 修改元素 如下两种方式等价
arrbuf1 ( 0 ) = 'A'
arrbuf1 . update ( 0 , 'A' )
println ( " 修改后: " + arrbuf1 . mkString ( "," ))
//TODO 4. 删除元素
//arrbuf1.remove(5)// 删除下标为 5 的元素

124.可变数组二

125.可变数组和不可变数组转换

可变数组和不可变数组转换
集合常用方法
基础方法
package com . itbaizhan . chapter07
import scala . collection . mutable
import scala . collection . mutable . ArrayBuffer
object ArrayTransformer extends App {
val buffer : ArrayBuffer [ Int ] = ArrayBuffer ( 1 ,
2 , 3 )
// 将可变数组转化为不可变数组
val array : Array [ Int ] = buffer . toArray
// 将不可变数组转化为可变数组
val buffer1 : mutable . Buffer [ Int ] =
array . toBuffer
// 数组转 List
val list : List [ Int ] = array . toList
val list1 : List [ Int ] = buffer . toList
// 数组转 Set
val set : Set [ Int ] = array . toSet
val set1 : Set [ Int ] = buffer . toSet
// 数组转 Seq
val seq : Seq [ Int ] = array . toSeq
val seq1 : Seq [ Int ] = buffer . toSeq
}
package com . itbai

126.集合常用方法_基础方法

127.集合常用方法_衍生方法一

128.集合常用方法_衍生方法二

129.集合常用方法_计算方法一

130.集合常用方法_计算方法二

131.集合常用方法_折叠方法

132.集合常用方法_功能方法map一

133.集合常用方法_功能方法map二

134.集合常用方法_功能方法flatten

135.集合常用方法_功能方法flamap

136.集合常用方法_单词数量统计一

137.集合常用方法_单词数量统计二

138.集合常用方法_单词数量统计三

8.模式匹配

139.swichi回顾

140.基本使用

141.匹配规则_匹配常量

142.匹配规则_匹配类型

143.匹配规则_匹配类型二

144.匹配规则_匹配数组

145.匹配规则_匹配元祖

146.匹配规则_匹配列表

匹配列表
package com . itbaizhan . chapter08
object CaseList extends App {
for ( list <- Array ( List ( 0 ),
List ( 1 , 0 ), List ( 0 , 1 ),
List ( 0 , 0 , 0 ),
List ( 2 , 0 , 1 ), List ( 6 ))) {
val result = list match {
//TODO 1. 匹配 List(0), 一个元素并且值为 0 List
case List ( 0 ) => "0"
//TODO 2. 匹配有两个元素的 List
case List ( x , y ) => x + "@" + y
//TODO 3. 匹配三个三个以上元素并且第一个元素为 0
List 集合
case List ( 0 , _ * ) => "0 ..."
case _ => "other list"
  }
println ( result )
}
val list : List [ Int ] = List ( 1 , 2 , 3 , 4 , 5 ) //1-2-
List(3, 4, 5)
//val list: List[Int] = List(1, 2)//1::2::Nil
=>1-2-List()
list match { 实时效果反馈
1. 关于 Scala 匹配列表代码的描述,错误的是:
A
case List(0) => "0"
匹配一个元素并且值为 0 List
B
case List(x, y) => x + "@" + y
匹配有两个元素的列表,然后将元素值
赋给对应的 x y 然后拼接字符串。
C
case List(0,
_
*)
匹配三个或三个以上元素并且第一个元素为 0
List 集合。
D
case one :: two :: rest => println(one + " - " + two + " - " + rest)
匹配有两个或两个
以上的 List 集合, one 代表第一个元素, two 代表第二个元素, rest
代表剩余元素组成的 List 集合。
答案:
1=>C 单独看该分支表示匹配第一个元素为 0 的列表,不管该列
表几个元素。

147.匹配规则_匹配对象

148.匹配规则_样例类

149.应用场景一

150.应用场景二

151.应用场景_升级WORDcount

152.偏函数_全量函数实现偏函数场景一

153.偏函数_全量函数实现偏函数场景二

154.偏函数_声明和使用

9.隐式转换

155.隐式转换概述

156.隐式函数

157.隐式参数和隐式变量一

158.隐式参数和隐式变量二

159.隐式类

160.隐式转换机制

10.泛型

161.泛型概述

162.泛型斜边和逆变

163.泛型的上下边界

164.常用方法中的泛型

165.上下文限定

11.正则表达式

166.正则表达式概述

167.正则表达式基本使用

168.正则案例实战

二.Kafka队列

1.课程介绍

2.kafka入门_什么是kafka

3.kafka入门_消息队列应用场景

4.kafka入门_消息队列两种模式

相关文章:

大数据学习之SCALA分布式语言三

7.集合类 111.可变set一 112.可变set二 113.不可变MAP集合一 114.不可变MAP集合二 115.不可变MAP集合三 116.可变map一 package com . itbaizhan . chapter07 //TODO 2. 使用 mutable.Map 前导入如下包 import scala . collection . mutable // 可变 Map 集合 object Ma…...

k8s简介,k8s环境搭建

目录 K8s简介环境搭建和准备工作修改主机名&#xff08;所有节点&#xff09;配置静态IP&#xff08;所有节点&#xff09;关闭防火墙和seLinux&#xff0c;清除iptables规则&#xff08;所有节点&#xff09;关闭交换分区&#xff08;所有节点&#xff09;修改/etc/hosts文件&…...

深入理解MySQL事务(万字详)

文章目录 什么是事务为什么会出现事务事务的版本支持事务的提交方式事务常见操作方式正常演示 - 证明事务的开始与回滚非正常演示1 - 证明未commit&#xff0c;客户端崩溃&#xff0c;MySQL自动会回滚&#xff08;隔离级别设置为读未提交&#xff09;非正常演示2 - 证明commit了…...

微信小程序使用picker根据接口给的省市区的数据实现省市区三级联动或者省市区街道等多级联动

接口数据如上图 省市区多级联动&#xff0c;都是使用的一个接口通过传参父类的code。返回我们想要的数据 比如获取省就直接不要参数。市就把省得code传给接口&#xff0c;区就把市的code作为参数。 <picker mode"multiSelector" :range"mulSelect1" …...

Go Fx 框架使用指南:深入理解 Provide 和 Invoke 的区别

1. 什么是 Fx 框架&#xff1f; Fx 是一个基于 Go 语言的依赖注入框架&#xff0c;专注于简化应用程序的生命周期管理和依赖的构建。在复杂的应用程序中&#xff0c;Fx 通过模块化的设计方式将组件连接起来&#xff0c;使开发者能够更高效地管理依赖关系。 Fx 的核心理念是&a…...

VSCode+Continue实现AI辅助编程

Continue是一款功能强大的AI辅助编程插件&#xff0c;可连接多种大模型&#xff0c;支持代码设计优化、错误修正、自动补全、注释编写等功能&#xff0c;助力开发人员提高工作效率与代码质量。以下是其安装和使用方法&#xff1a; 一、安装VSCode 参见&#xff1a; vscode安…...

阿里云服务器在Ubuntu上安装redis并使用

1、redis安装 sudo apt install lsb-release curl gpgcurl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpgecho "deb [signed-by/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.…...

Blazor-Blazor呈现概念

静态和交互式呈现概念 在Blazor开发中&#xff0c;Razor 组件具备两种重要的呈现方式&#xff0c;分别是静态呈现和交互式呈现。 静态呈现 也被称为静态渲染&#xff0c;是一种典型的服务器端方案。在这种模式下&#xff0c;组件呈现时&#xff0c;用户与.NET/C# 代码之间缺…...

14-6-2C++的list

(一&#xff09;list对象的带参数构造 1.list&#xff08;elem);//构造函数将n个elem拷贝给本身 #include <iostream> #include <list> using namespace std; int main() { list<int> lst(3,7); list<int>::iterator it; for(itlst.begi…...

StarRocks常用命令

目录 1、StarRocks 集群管理&配置命令 2、StarRocks 常用操作命令 3、StarRocks 数据导入和导出 1、StarRocks 集群管理&配置命令 查询 FE 节点信息 SHOW frontends; SHOW PROC /frontends; mysql -h192.168.1.250 -P9030 -uroot -p -e "SHOW PROC /dbs;"…...

激光雷达和相机早期融合

通过外参和内参的标定将激光雷达的点云投影到图像上。 • 传感器标定 首先需要对激光雷达和相机&#xff08;用于获取 2D 图像&#xff09;进行外参和内参标定。这是为了确定激光雷达坐标系和相机坐标系之间的转换关系&#xff0c;包括旋转和平移。通常采用棋盘格等标定工具&…...

PMP–一、二、三模–分类–12.采购管理

文章目录 技巧十二、采购管理 一模12.采购管理--3.控制采购--输出--风险登记册--每个被选中的卖方都会带来特殊的风险。随着早期风险的过时以及新风险的出现&#xff0c;在项目执行期间对风险登记册进行变更。 供应商还未开始做&#xff0c;是一个风险&#xff0c;当做风险进行…...

C++ 标准模板库 (STL, Standard Template Library)

声明&#xff1a;大佬们~这是Tubishu在追寻stl过程中偶然得到了“颢天”大佬的笔记&#xff0c;shushu感觉非常有帮助&#x1f525;又颢天佬未曾来过CSDN&#xff0c;索性在此传达颢天大佬的功德&#x1f9ce; 传送门在此➡️颢天笔记✨✨ C 标准模板库 (STL, Standard Templa…...

从spec到iso的koji使用

了解一下Linux发行版流程&#xff1a;:从spec到iso的koji使用 for Fedora 41。 Fedora 41有24235个包&#xff0c;我们选择 minimal 的几十个源码包&#xff0c;百多个rpm包构建。 配3台服务器 40C64G 48C64G 80C128G&#xff0c;有点大材小用&#xff0c;一台就够了 &#xf…...

【记录自开发的SQL工具】工具字符拼接、Excel转sql、生成编码、生成测试数据

记录自己开发的一个SQL聚合工具 功能介绍&#xff1a; 文本加引号 给多行文本前后添加引号&#xff0c;并用逗号连接&#xff0c;直接复制到 sql 中的 in 条件中 Excel转SQL 适用于将Excel表格的数据&#xff0c;批量导入到数据库的场景 此工具能快速将excel表格转换为i…...

Cesium特效——城市白模的科技动效的各种效果

最终效果图如下&#xff1a; 实现方法&#xff1a; 步骤一&#xff1a;使用cesiumlib生产白模&#xff0c;格式为3dtiles 注意事项&#xff1a;采用其他方式可能导致白模贴地&#xff0c;从而导致不能实现该效果&#xff0c;例如把步骤二的服务地址改为Cesium Sandcastle 里的…...

VS Code i18n国际化组件代码code显示中文配置 i18n ally

VUE项目做i18n国际化之后&#xff0c;代码中的中文都变成了code这时的代码就会显得非常难读&#xff0c;如果有一个插件能把code转换成中文显示就好了 vscode插件搜索“i18n ally” 在项目根文件夹下创建文件&#xff1a;.vscode/settings.json settings.json 内容如下 {"…...

C++ —— 智能指针 unique_ptr (上)

C —— 智能指针 unique_ptr &#xff08;上&#xff09; 普通指针的不足普通指针的释放智能指针智能指针 unique_ptr智能指针初始化错误用法get()方法返回裸指针智能指针不支持指针的运算&#xff08;、-、、- -&#xff09; 普通指针的不足 new和new [] 的内存需要用delete和…...

技术 · 创作 · 生活 | 我的 2024 全面复盘

目录 &#x1f31f;2024年度总结&#xff1a;回顾、成长与突破&#x1f31f;&#x1f680; 一、技术成长与突破 &#x1f680;&#x1f517; 1. 深入区块链与智能合约&#x1f50d; 2. 探索新兴技术 ✍️ 二、创作与博客历程 ✍️&#x1f4d6; 1. 内容创作的演变&#x1f3c6;…...

表的增删改查(MySQL)

1. 表的增删改查 CRUD : Create(创建), Retrieve(读取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;删除&#xff09; 1.1 Create 语法&#xff1a; INSERT [INTO] table_name [(column [, column] ...)] VALUES (value_list) [, (value_list)] ...value_list:…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...