大數據學習之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入門_消息隊列兩種模式

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67238.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67238.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67238.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MongoDB中常用的幾種高可用技術方案及優缺點

MongoDB 的高可用性方案主要依賴于其內置的 副本集 (Replica Set) 和 Sharding 機制。下面是一些常見的高可用性技術方案&#xff1a; 1. 副本集 (Replica Set) 副本集是 MongoDB 提供的主要高可用性解決方案&#xff0c;確保數據在多個節點之間的冗余存儲和自動故障恢復。副…

基于OSAL的嵌入式裸機事件驅動框架——整體架構調度機制

參考B站up主【架構分析】嵌入式祼機事件驅動框架 感謝大佬分享 任務ID &#xff1a; TASK_XXX TASK_XXX 在系統中每個任務的ID是唯一的&#xff0c;范圍是 0 to 0xFFFE&#xff0c;0xFFFF保留為SYS_TSK_INIT。 同時任務ID的大小也充當任務調度的優先級&#xff0c;ID越大&#…

WGCLOUD運維工具從入門到精通 - 如何設置主題背景

需要升級到WGCLOUD的v3.5.7或者以上版本&#xff0c;才會支持自定義設置主題背景色 WGCLOUD下載&#xff1a;www.wgstart.com 我們登錄后&#xff0c;在右上角點擊如下的小圖標&#xff0c;就可以設置主題背景色了&#xff0c;包括&#xff1a;經典白&#xff08;默認&#x…

LigerUI在MVC模式下的響應原則

LigerUI是基于jQuery的UI框架&#xff0c;故他也是遵守jQuery的開發模式&#xff0c;但是也具有其特色的偵聽函數&#xff0c;那么當LigerUI作為View層的時候&#xff0c;他所發送后端的必然是表單的數據&#xff0c;在此我們以倆個div為例&#xff1a; {Layout "~/View…

基于RIP的MGRE VPN綜合實驗

實驗拓撲 實驗需求 1、R5為ISP&#xff0c;只能進行IP地址配置&#xff0c;其所有地址均配為公有IP地址&#xff1b; 2、R1和R5間使用PPP的PAP認證&#xff0c;R5為主認證方&#xff1b; R2與R5之間使用ppp的CHAP認證&#xff0c;R5為主認證方&#xff1b; R3與R5之間使用HDLC封…

git的理解與使用

本地的git git除了最經典的add commit push用來做版本管理&#xff0c;其實他的分支管理也非常強大 可以說你學好了分支管理&#xff0c;就可以完成團隊的配合協作了 git倉庫 我們可以使用git init來初始化一個git倉庫&#xff0c;只要能看見.git文件夾&#xff0c;就代表這…

Java 編程初體驗

Java學習資料 Java學習資料 Java學習資料 一、引言 在當今數字化的時代&#xff0c;編程已然成為一項極具價值的技能。而 Java 作為一門廣泛應用于企業級開發、移動應用、大數據等眾多領域的編程語言&#xff0c;吸引著無數初學者投身其中。當我們初次踏入 Java 編程的世界&…

STM32 對射式紅外傳感器配置

這次用的是STM32F103的開發板&#xff08;這里面的exti.c文件沒有how to use this driver 配置說明&#xff09; 對射式紅外傳感器 由一個紅外發光二極管和NPN光電三極管組成&#xff0c;M3固定安裝孔&#xff0c;有輸出狀態指示燈&#xff0c;輸出高電平燈滅&#xff0c;輸出…

https數字簽名手動驗簽

以bing.com 為例 1. CA 層級的基本概念 CA 層級是一種樹狀結構&#xff0c;由多個層級的 CA 組成。每個 CA 負責為其下一層級的實體&#xff08;如子 CA 或終端實體&#xff09;頒發證書。層級結構的頂端是 根 CA&#xff08;Root CA&#xff09;&#xff0c;它是整個 PKI 體…

【自然語言處理(NLP)】深度循環神經網絡(Deep Recurrent Neural Network,DRNN)原理和實現

文章目錄 介紹深度循環神經網絡&#xff08;DRNN&#xff09;原理和實現結構特點工作原理符號含義公式含義 應用領域優勢與挑戰DRNN 代碼實現 個人主頁&#xff1a;道友老李 歡迎加入社區&#xff1a;道友老李的學習社區 介紹 **自然語言處理&#xff08;Natural Language Pr…

Niagara學習筆記

橙色 發射器 , 綠色 粒子, 紅色 渲染器 Emitter State 發射器狀態 Life Cycle Mode&#xff08;生命周期模式&#xff09; 選擇Self就是發射器自身管理生命周期 Loop Behavior 決定粒子發射次數 一次&#xff08;Once&#xff09;&#xff1a;發射器只播放一次多次&#…

17 一個高并發的系統架構如何設計

高并發系統的理解 第一:我們設計高并發系統的前提是該系統要高可用&#xff0c;起碼整體上的高可用。 第二:高并發系統需要面對很大的流量沖擊&#xff0c;包括瞬時的流量和黑客攻擊等 第三:高并發系統常見的需要考慮的問題&#xff0c;如內存不足的問題&#xff0c;服務抖動的…

2025數學建模美賽|F題成品論文

國家安全政策與網絡安全 摘要 隨著互聯網技術的迅猛發展&#xff0c;網絡犯罪問題已成為全球網絡安全中的重要研究課題&#xff0c;且網絡犯罪的形式和影響日益復雜和嚴重。本文針對網絡犯罪中的問題&#xff0c;基于多元回歸分析和差異中的差異&#xff08;DiD&#xff09;思…

適配Android16

Android16新特性 Android 16帶來了許多新特性和改進&#xff0c;提升了系統的流暢度、用戶體驗和安全性。對于應用開發者來說&#xff0c;適配Android 16可以確保應用在該版本上的兼容性和性能&#xff0c;同時也可以利用其新特性為用戶提供更好的服務。以下是Android 16的一些…

【C++數論】880. 索引處的解碼字符串|2010

本文涉及知識點 數論&#xff1a;質數、最大公約數、菲蜀定理 LeetCode880. 索引處的解碼字符串 給定一個編碼字符串 s 。請你找出 解碼字符串 并將其寫入磁帶。解碼時&#xff0c;從編碼字符串中 每次讀取一個字符 &#xff0c;并采取以下步驟&#xff1a; 如果所讀的字符是…

【MQ】如何保證消息隊列的高可用?

RocketMQ NameServer集群部署 Broker做了集群部署 主從模式 類型&#xff1a;同步復制、異步復制 主節點返回消息給客戶端的時候是否需要同步從節點 Dledger&#xff1a;要求至少消息復制到半數以上的節點之后&#xff0c;才給客戶端返回寫入成功 slave定時從master同步數據…

ESP32 I2S音頻總線學習筆記(二):I2S讀取INMP441音頻數據

簡介 在這個系列的上一篇文章中&#xff0c;我們介紹了ESP32 I2S音頻總線的相關知識&#xff0c;簡要了解了什么是I2S總線、它的通信格式&#xff0c;以及相關的底層API函數。沒有看過上篇文章的可以點擊文章進行回顧&#xff1a; ESP32 I2S音頻總線學習筆記&#xff08;一&a…

EasyExcel使用詳解

文章目錄 EasyExcel使用詳解一、引言二、環境準備與基礎配置1、添加依賴2、定義實體類 三、Excel 讀取詳解1、基礎讀取2、自定義監聽器3、多 Sheet 處理 四、Excel 寫入詳解1、基礎寫入2、動態列與復雜表頭3、樣式與模板填充 五、總結 EasyExcel使用詳解 一、引言 EasyExcel 是…

objection的簡單使用

objection環境配置 下載以下版本 objection1.11.0 frida-tools9.2.4 python3.8.8 報錯的話看這里: 在這個網站下載frida-tools14.2.18的離線包Links for frida 然后放入C:\Users\Asus\frida-14.2.18-py3.8-win-amd64.egg文件夾下 執行poetry add frida-tools14.2.18 ob…

危機13小時:追蹤一場GitHub投毒事件

事件概要 自北京時間 2024.12.4 晚間6點起&#xff0c; GitHub 上不斷出現“幽靈倉庫”&#xff0c;倉庫中沒有任何代碼&#xff0c;只有誘導性的病毒文件。當天&#xff0c;他們成為了 GitHub 上 star 增速最快的倉庫。超過 180 個虛假僵尸賬戶正在傳播病毒&#xff0c;等待不…