大数据学习之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入门_消息队列两种模式

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

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

相关文章

RAG是否被取代(缓存增强生成-CAG)吗?

引言&#xff1a; 本文深入研究一种名为缓存增强生成&#xff08;CAG&#xff09;的新技术如何工作并减少/消除检索增强生成&#xff08;RAG&#xff09;弱点和瓶颈。 LLMs 可以根据输入给他的信息给出对应的输出&#xff0c;但是这样的工作方式很快就不能满足应用的需要: 因…

使用 Tauri 2 + Next.js 开发跨平台桌面应用实践:Singbox GUI 实践

Singbox GUI 实践 最近用 Tauri Next.js 做了个项目 - Singbox GUI&#xff0c;是个给 sing-box 用的图形界面工具。支持 Windows、Linux 和 macOS。作为第一次接触这两个框架的新手&#xff0c;感觉收获还蛮多的&#xff0c;今天来分享下开发过程中的一些经验~ 为啥要做这个…

三甲医院大型生信服务器多配置方案剖析与应用(2024版)

一、引言 1.1 研究背景与意义 在当今数智化时代&#xff0c;生物信息学作为一门融合生物学、计算机科学和信息技术的交叉学科&#xff0c;在三甲医院的科研和临床应用中占据着举足轻重的地位。随着高通量测序技术、医学影像技术等的飞速发展&#xff0c;生物医学数据呈爆发式…

2025_2_1 C语言中关于字符串

1.字符串 C语言中的字符串都是字符数组&#xff0c;以空字符 ‘\0’结尾。 创建一个字符数组必须以空字符结尾&#xff0c;不然会访问非法区域&#xff0c;直到找到\0为止 char c[] {a, b, c, \0};长度为n的字符串字面值&#xff0c;会存储在虚拟内存中的只读数据段中&#…

Redis篇 Redis如何清理过期的key以及对应的解决方法

Redis设置Key过期时间 在 Redis 中&#xff0c;可以通过特定的命令为 Key 设置过期时间&#xff0c;使得 Key 在一定时间后自动删除&#xff0c;这对于管理缓存、验证码等临时数据非常有用。 解决方法 1. Redis过期删除策略 1.1 如何实现过期策略 对一个 key 设置了过期时间…

java练习(1)

两数之和&#xff08;题目来自力扣&#xff09; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相…

Python3 OS模块中的文件/目录方法说明十四

一. 简介 前面文章简单学习了 Python3 中 OS模块中的文件/目录的部分函数。 本文继续来学习 OS 模块中文件、目录的操作方法&#xff1a;os.statvfs() 方法&#xff0c;os.symlink() 方法。 二. Python3 OS模块中的文件/目录方法 1. os.statvfs() 方法 os.statvfs() 方法用…

从理论到实践:Linux 进程替换与 exec 系列函数

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; 在Linux中&#xff0c;进程替换&#xff08;Process Substitution&#xff09;是一个非常强大的特性&#xff0c;它允许将一个进程的输出直接当作一个文件来处理。这种技术通常用于Shell脚本和命令行操作中…

ZZNUOJ(C/C++)基础练习1041——1050(详解版)

1041 : 数列求和2 题目描述 输入一个整数n&#xff0c;输出数列1-1/31/5-……前n项的和。 输入 输入只有一个整数n。 输出 结果保留2为小数,单独占一行。 样例输入 3 样例输出 0.87注意sum 1相当于sumsum1 注意sum * 1相当于sumsum*1 C语言版 #include<stdio.h> // 包含…

2021 年 6 月大学英语四级考试真题(第 2 套)——纯享题目版

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;目前中南大学MBA在读&#xff0c;也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &…

【Block总结】CPCA,通道优先卷积注意力|即插即用

论文信息 标题: Channel Prior Convolutional Attention for Medical Image Segmentation 论文链接: arxiv.org 代码链接: GitHub 创新点 本文提出了一种新的通道优先卷积注意力&#xff08;CPCA&#xff09;机制&#xff0c;旨在解决医学图像分割中存在的低对比度和显著…

grpc 和 http 的区别---二进制vsJSON编码

gRPC 和 HTTP 是两种广泛使用的通信协议&#xff0c;各自适用于不同的场景。以下是它们的详细对比与优势分析&#xff1a; 一、核心特性对比 特性gRPCHTTP协议基础基于 HTTP/2基于 HTTP/1.1 或 HTTP/2数据格式默认使用 Protobuf&#xff08;二进制&#xff09;通常使用 JSON/…

Qt常用控件 输入类控件

文章目录 1.QLineEdit1.1 常用属性1.2 常用信号1.3 例子1&#xff0c;录入用户信息1.4 例子2&#xff0c;正则验证手机号1.5 例子3&#xff0c;验证输入的密码1.6 例子4&#xff0c;显示密码 2. QTextEdit2.1 常用属性2.2 常用信号2.3 例子1&#xff0c;获取输入框的内容2.4 例…

[b01lers2020]Life on Mars1

打开题目页面如下 看了旁边的链接&#xff0c;也没有什么注入点&#xff0c;是正常的科普 利用burp suite抓包&#xff0c;发现传参 访问一下 http://5edaec92-dd87-4fec-b0e3-501ff24d3650.node5.buuoj.cn:81/query?searchtharsis_rise 接下来进行sql注入 方法一&#xf…

前端自动化测试(一):揭秘自动化测试秘诀

目录 [TOC](目录)前言自动化测试 VS 手动测试测试分类何为单元测试单元测试的优缺点优点缺点 测试案例测试代码 测试函数的封装实现 expect 方法实现 test 函数结语 正文开始 &#xff0c; 如果觉得文章对您有帮助&#xff0c;请帮我三连订阅&#xff0c;谢谢&#x1f496;&…

FFmpeg工具使用基础

一、FFmpeg工具介绍 FFmpeg命令行工具主要包括以下几个部分: ‌ffmpeg‌:编解码工具‌ffprobe‌:多媒体分析器‌ffplay‌:简单的音视频播放器这些工具共同构成了FFmpeg的核心功能,支持各种音视频格式的处理和转换‌ 二、在Ubuntu18.04上安装FFmpeg工具 1、sudo apt-upda…

upload labs靶场

upload labs靶场 注意:本人关卡后面似乎相比正常的关卡少了一关&#xff0c;所以每次关卡名字都是1才可以和正常关卡在同一关 一.个人信息 个人名称&#xff1a;张嘉玮 二.解题情况 三.解题过程 题目&#xff1a;up load labs靶场 pass 1前后端 思路及解题&#xff1a;…

解锁豆瓣高清海报(二) 使用 OpenCV 拼接和压缩

解锁豆瓣高清海报(二): 使用 OpenCV 拼接和压缩 脚本地址: 项目地址: Gazer PixelWeaver.py pixel_squeezer_cv2.py 前瞻 继上一篇“解锁豆瓣高清海报(一) 深度爬虫与requests进阶之路”成功爬取豆瓣电影海报之后&#xff0c;本文将介绍如何使用 OpenCV 对这些海报进行智…

C++:虚函数与多态性习题2

题目内容&#xff1a; 编写程序&#xff0c;声明抽象基类Shape&#xff0c;由它派生出3个派生类&#xff1a;Circle、Rectangle、Triangle&#xff0c;用虚函数分别计算图形面积&#xff0c;并求它们的和。要求用基类指针数组&#xff0c;使它每一个元素指向一个派生类对象。 …

JVM运行时数据区域-附面试题

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有的区域随着虚拟机进程的启动而一直存在&#xff0c;有些区域则是 依赖用户线程的启动和结束而建立和销毁。 1. 程序计…