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

news2025/1/30 12:33:04

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入门_消息队列两种模式

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于微信小程序的电子商城购物系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

2000-2020年各省第二产业增加值占GDP比重数据

2000-2020年各省第二产业增加值占GDP比重数据 1、时间&#xff1a;2000-2020年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;行政区划代码、地区名称、年份、第二产业增加值占GDP比重 4、范围&#xff1a;31省 5、指标解释&#xff1a;第二产业增加值占GDP比重…

【Docker】Docker入门了解

文章目录 Docker 的核心概念Docker 常用命令示例&#xff1a;构建一个简单的 C 应用容器1. 创建 C 应用2. 创建 Dockerfile3. 构建镜像4. 运行容器 Docker 优势学习 Docker 的下一步 **一、Docker 是什么&#xff1f;****为什么 C 开发者需要 Docker&#xff1f;** **二、核心概…

java求职学习day18

常用的设计原则和设计模式 1 常用的设计原则&#xff08;记住&#xff09; 1.1 软件开发的流程 需求分析文档、概要设计文档、详细设计文档、编码和测试、安装和调试、维护和升级 1.2 常用的设计原则 &#xff08;1&#xff09;开闭原则&#xff08;Open Close Principle…

初阶2 类与对象

本章重点 上篇1.面向过程和面向对象初步认识2.类的引入---结构体3.类的定义3.1 语法3.2 组成3.3 定义类的两种方法&#xff1a; 4.类的访问限定符及封装4.1 访问限定符4.2封装---面向对象的三大特性之一 5.类的作用域6.类的实例化7.类对象模型7.1 如何计算类对象的大小 8.this指…

蓝桥杯模拟算法:多项式输出

P1067 [NOIP2009 普及组] 多项式输出 - 洛谷 | 计算机科学教育新生态 这道题是一道模拟题&#xff0c;我们需要分情况讨论&#xff0c;我们需要做一下分类讨论 #include <iostream> #include <cstdlib> using namespace std;int main() {int n;cin >> n;for…

深度剖析C++17中的std::optional:处理可能缺失值的利器

文章目录 一、基本概念与设计理念二、构建与初始化&#xff08;一&#xff09;默认构造&#xff08;二&#xff09;值初始化&#xff08;三&#xff09;使用std::make_optional&#xff08;四&#xff09;使用std::nullopt 三、访问值&#xff08;一&#xff09;value()&#x…

MySQL用户授权、收回权限与查看权限

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

【Maui】注销用户,采用“手势”点击label弹窗选择

文章目录 前言一、问题描述二、解决方案三、软件开发&#xff08;源码&#xff09;3.1 方法一&#xff1a;前端绑定3.2 方法二&#xff1a;后端绑定3.3 注销用户的方法 四、项目展示 前言 .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架&#xff0c;用于使用 C# 和 XAML 创…

如何将xps文件转换为txt文件?xps转为pdf,pdf转为txt,提取pdf表格并转为txt

文章目录 xps转txt方法一方法二 pdf转txt整页转txt提取pdf表格&#xff0c;并转为txt 总结另外参考XPS文件转换为TXT文件XPS文件转换为PDF文件PDF文件转换为TXT文件提取PDF表格并转为TXT示例代码&#xff08;部分&#xff09; 本文测试代码已上传&#xff0c;路径如下&#xff…

Object类(2)

大家好&#xff0c;今天我们继续来看看Object类中一些成员方法&#xff0c;这些方法在实际中有很大的用处&#xff0c;话不多说&#xff0c;来看。 注&#xff1a;所有类都默认继承Object类的&#xff0c;所以可调用Object类中的方法&#xff0c;如equals&#xff0c;也可以发生…

BGP分解实验·11——路由聚合与条件性通告(3)

续接上&#xff08;2&#xff09;的实验。其拓扑如下&#xff1a; 路由聚合的负向也就是拆分&#xff0c;在有双出口的情况下&#xff0c;在多出口做流量分担是优选方法之一。 BGP可以根据指定来源而聚合路由&#xff0c;在产生该聚合路由的范围内的条目注入到本地BGP表后再向…

MOS的体二极管能通多大电流

第一个问题&#xff1a;MOS导通之后电流方向可以使任意的&#xff0c;既可以从D到S&#xff0c;也可以从S到D。 第二个问题&#xff1a;MOS里面的体二极管电流可以达到几百安培&#xff0c;这也就解释了MOS选型的时候很少考虑体二极管的最大电流&#xff0c;而是考虑DS之间电流…

C语言【基础篇】之流程控制——掌握三大结构的奥秘

流程控制 &#x1f680;前言&#x1f99c;顺序结构&#x1f4af; 定义&#x1f4af;执行规则 &#x1f31f;选择结构&#x1f4af;if语句&#x1f4af;switch语句&#x1f4af;case穿透规则 &#x1f914;循环结构&#x1f4af;for循环&#x1f4af;while循环&#x1f4af;do -…

Node.js下载安装及环境配置教程 (详细版)

Node.js&#xff1a;是一个基于 Chrome V8 引擎的 JavaScript 运行时&#xff0c;用于构建可扩展的网络应用程序。Node.js 使用事件驱动、非阻塞 I/O 模型&#xff0c;使其非常适合构建实时应用程序。 Node.js 提供了一种轻量、高效、可扩展的方式来构建网络应用程序&#xff0…

新型人工智能“黑帽”工具:GhostGPT带来的威胁与挑战

生成式人工智能的发展既带来了有益的生产力转型机会&#xff0c;也提供了被恶意利用的机会。 最近&#xff0c;Abnormal Security的研究人员发现了一个专门为网络犯罪创建的无审查AI聊天机器人——GhostGPT&#xff0c;是人工智能用于非法活动的新前沿&#xff0c;可以被用于网…

【文星索引】搜索引擎项目测试报告

目录 一、项目背景二、 项目功能2.1 数据收集与索引2.2 API搜索功能2.3 用户体验与界面设计2.4 性能优化与维护 三、测试报告3.1 功能测试3.2 界面测试3.3 性能测试3.4 兼容性测试3.5 自动化测试 四、测试总结4.1 功能测试方面4.2 性能测试方面4.3 用户界面测试方面 一、项目背…

【PostgreSQL内核学习 —— (WindowAgg(一))】

WindowAgg 窗口函数介绍WindowAgg理论层面源码层面WindowObjectData 结构体WindowStatePerFuncData 结构体WindowStatePerAggData 结构体eval_windowaggregates 函数update_frameheadpos 函数 声明&#xff1a;本文的部分内容参考了他人的文章。在编写过程中&#xff0c;我们尊…

【观察】甲骨文:以AI为中心,开启企业级平台架构“新革命”

知名科技杂志《连线》创始主编凯文凯利曾预测&#xff1a;“在未来的 100 年里&#xff0c;人工智能将超越任何一种人工力量&#xff0c;将人类引领到一个前所未有的时代。” 可以看到&#xff0c;随着近两年AIGC与大模型的快速爆发&#xff0c;AI在千万行业中的重要性愈发突出…

react native在windows环境搭建并使用脚手架新建工程

截止到2024-1-11&#xff0c;使用的主要软件的版本如下&#xff1a; 软件实体版本react-native0.77.0react18.3.1react-native-community/cli15.0.1Android Studio2022.3.1 Patch3Android SDKAndroid SDK Platform 34 35Android SDKAndroid SDK Tools 34 35Android SDKIntel x…